X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/c7fa7959f1718394c772a187bb124780f86fa2f3..a8ce11cea15f572925793b181a06fdd5b9b4127a:/utils.py?ds=sidebyside diff --git a/utils.py b/utils.py index 6b3b697..de68f22 100755 --- a/utils.py +++ b/utils.py @@ -319,4 +319,20 @@ def _sudo(func, userid=None) : raise e return ret - \ No newline at end of file + +security.declarePublic('searchContentsWithLocalRolesForAuthenticatedUser') +def searchContentsWithLocalRolesForAuthenticatedUser(**kw): + mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool') + ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool') + member = mtool.getAuthenticatedMember() + userid = member.getId() + userAndGroups = ['user:%s' % userid] + + getGroups = getattr(member, 'getGroups', None) + if getGroups is not None : + for group in getGroups(): + userAndGroups.append('user:'+group) + + kw[ 'allowedRolesAndUsers' ] = userAndGroups + + return ctool.unrestrictedSearchResults(**kw)