def cached_principal_roles(self, parent, principal): cache = self.cache(parent) try: cache_principal_roles = cache.principal_roles except AttributeError: cache_principal_roles = cache.principal_roles = {} try: return cache_principal_roles[principal] except KeyError: pass if parent is None: roles = dict( [(role, SettingAsBoolean[setting]) for (role, setting) in globalRolesForPrincipal(principal)]) roles['zope.Anonymous'] = True # Everybody has Anonymous cache_principal_roles[principal] = roles return roles roles = self.cached_principal_roles( removeSecurityProxy(getattr(parent, '__parent__', None)), principal) prinrole = IPrincipalRoleMap(parent, None) if prinrole: roles = roles.copy() for role, setting in prinrole.getRolesForPrincipal(principal): roles[role] = SettingAsBoolean[setting] cache_principal_roles[principal] = roles return roles
def cached_principal_roles(self, parent, principal): # Redefine it to get global roles cache = self.cache(parent) try: cache_principal_roles = cache.principal_roles except AttributeError: cache_principal_roles = cache.principal_roles = {} try: return cache_principal_roles[principal] except KeyError: pass if parent is None: roles = dict( [(role, SettingAsBoolean[setting]) for (role, setting) in globalRolesForPrincipal(principal)]) roles['plone.Anonymous'] = True # Everybody has Anonymous cache_principal_roles[principal] = roles return roles roles = self.cached_principal_roles( removeSecurityProxy(getattr(parent, '__parent__', None)), principal) prinrole = IPrincipalRoleMap(parent, None) if prinrole: roles = roles.copy() for role, setting in prinrole.getRolesForPrincipal( principal, self.request): roles[role] = SettingAsBoolean[setting] cache_principal_roles[principal] = roles return roles
def cached_principal_roles(self, parent, principal): cache = self.cache(parent) try: cache_principal_roles = cache.principal_roles except AttributeError: cache_principal_roles = cache.principal_roles = {} try: return cache_principal_roles[principal] except KeyError: pass if parent is None: roles = dict([ (role, zopepolicy.SettingAsBoolean[setting]) for (role, setting) in zopepolicy.globalRolesForPrincipal(principal) ]) roles['zope.Anonymous'] = True # Everybody has Anonymous cache_principal_roles[principal] = roles return roles roles = self.cached_principal_roles( removeSecurityProxy(getattr(parent, '__parent__', None)), principal) prinrole = IPrincipalRoleMap(parent, None) if prinrole: roles = roles.copy() for role, setting in prinrole.getRolesForPrincipal(principal): roles[role] = zopepolicy.SettingAsBoolean[setting] # The lines below include the group that a document has been assigned # to into the lookup hierarchy. group_assignments = getattr(parent, "sa_group_assignments", []) for group_assignment in group_assignments: group = group_assignment.principal #!+GROUP_ASSIGNMENT.GROUP assert isinstance(group, domain.Group), group assigned_group_prinrole = IPrincipalRoleMap(group, None) if assigned_group_prinrole: roles = roles.copy() role_settings = assigned_group_prinrole.getRolesForPrincipal( principal) for role, setting in role_settings: roles[role] = zopepolicy.SettingAsBoolean[setting] cache_principal_roles[principal] = roles return roles
def cached_principal_roles(self, parent, principal): cache = self.cache(parent) try: cache_principal_roles = cache.principal_roles except AttributeError: cache_principal_roles = cache.principal_roles = {} try: return cache_principal_roles[principal] except KeyError: pass if parent is None: roles = dict( [(role, zopepolicy.SettingAsBoolean[setting]) for (role, setting) in zopepolicy.globalRolesForPrincipal(principal)]) roles['zope.Anonymous'] = True # Everybody has Anonymous cache_principal_roles[principal] = roles return roles roles = self.cached_principal_roles( removeSecurityProxy(getattr(parent, '__parent__', None)), principal) prinrole = IPrincipalRoleMap(parent, None) if prinrole: roles = roles.copy() for role, setting in prinrole.getRolesForPrincipal(principal): roles[role] = zopepolicy.SettingAsBoolean[setting] # The lines below include the group that a document has been assigned # to into the lookup hierarchy. group_assignments = getattr(parent, "sa_group_assignments", []) for group_assignment in group_assignments: group = group_assignment.principal #!+GROUP_ASSIGNMENT.GROUP assert isinstance(group, domain.Group), group assigned_group_prinrole = IPrincipalRoleMap(group, None) if assigned_group_prinrole: roles = roles.copy() role_settings = assigned_group_prinrole.getRolesForPrincipal( principal) for role, setting in role_settings: roles[role] = zopepolicy.SettingAsBoolean[setting] cache_principal_roles[principal] = roles return roles
def getAllRoles(self): hfr = IPrincipalRoleMap(self.homefolder) masteruser = False ret = [] for rolesetting in hfr.getRolesForPrincipal(self.principal.id): role, setting = rolesetting if 'uvc.Editor' == role and setting is Allow: masteruser = True ret.append('ENMS') for name, productfolder in self.homefolder.items(): if not name.startswith('__'): if masteruser: ret.append(name) else: prm = IPrincipalRoleMap(productfolder) for rolesetting in prm.getRolesForPrincipal(self.principal.id): role, setting = rolesetting if 'uvc.Editor' == role and setting is Allow: ret.append(name) return ret
def getAllRoles(self): ret = [] hfr = IPrincipalRoleMap(self.homefolder, None) if hfr is None: return ret masteruser = False for rolesetting in hfr.getRolesForPrincipal(self.principal.id): role, setting = rolesetting if 'uvc.Editor' == role and setting is Allow: masteruser = True ret.append('ENMS') for name, productfolder in self.homefolder.items(): if not name.startswith('__'): if masteruser: ret.append(name) else: prm = IPrincipalRoleMap(productfolder) for rolesetting in prm.getRolesForPrincipal( self.principal.id): role, setting = rolesetting if 'uvc.Editor' == role and setting is Allow: ret.append(name) return ret
def cached_principal_roles(self, parent, principal): cache = self.cache(parent) try: cache_principal_roles = cache.principal_roles except AttributeError: cache_principal_roles = cache.principal_roles = {} try: return cache_principal_roles[principal] except KeyError: pass if parent is None: roles = dict([(role, SettingAsBoolean[setting]) for (role, setting) in globalRolesForPrincipal(principal)]) roles['zope.Anonymous'] = True # Everybody has Anonymous cache_principal_roles[principal] = roles return roles if getattr(parent, 'inherit_permissions', False): roles = self.cached_principal_roles( removeSecurityProxy(getattr(parent, '__parent__', None)), principal) else: roles = dict([(role, SettingAsBoolean[setting]) for (role, setting) in globalRolesForPrincipal(principal)]) roles['zope.Anonymous'] = True # Everybody has Anonymous prinrole = IPrincipalRoleMap(parent, None) if prinrole: for role, setting in prinrole.getRolesForPrincipal(principal): roles[role] = SettingAsBoolean[setting] cache_principal_roles[principal] = roles return roles
def roles(self): prmap = IPrincipalRoleMap(self.context) return [ids for ids, setting in prmap.getRolesForPrincipal(self.principal_id)]
def roles(self): prmap = IPrincipalRoleMap(self.context) return [ ids for ids, setting in prmap.getRolesForPrincipal(self.principal_id) ]