コード例 #1
0
ファイル: roles.py プロジェクト: ArcheProject/Arche
 def _adjust_to_set(self, value):
     if IRole.providedBy(value):
         value = set([value])
     elif isinstance(value, string_types):
         value = set([value])
     else:
         value = set(value)
     return value
コード例 #2
0
ファイル: roles.py プロジェクト: ArcheProject/Arche
def register_roles(config, *roles):
    reg = config.registry
    if not hasattr(reg, 'roles'):
        reg.roles = {}
    for role in roles:
        assert IRole.providedBy(role), "Must be a role object"
        if role in reg.roles: #pragma : no coverage
            logger.warning("Overriding role %r" % role)
        reg.roles[role.principal] = role
コード例 #3
0
ファイル: security.py プロジェクト: Jickelsen/Arche
 def __setitem__(self, key, value):
     if value:
         #Make sure it exist
         roles_principals = get_roles_registry()
         if IRole.providedBy(value):
             value = [value]
         for role in value:
             assert role in roles_principals, "'%s' isn't a role" % role
         self.data[key] = OOSet(value)
     elif key in self.data:
         del self.data[key]
コード例 #4
0
ファイル: security.py プロジェクト: Jickelsen/Arche
 def __setitem__(self, key, value):
     if value:
         # Make sure it exist
         roles_principals = get_roles_registry()
         if IRole.providedBy(value):
             value = [value]
         for role in value:
             assert role in roles_principals, "'%s' isn't a role" % role
         self.data[key] = OOSet(value)
     elif key in self.data:
         del self.data[key]
コード例 #5
0
ファイル: acl.py プロジェクト: ArcheProject/Arche
 def add(self, role, perms):
     if not IRole.providedBy(role):
         reg = get_current_registry()
         roles = getattr(reg, 'roles', {})
         try:
             role = roles[role]
         except KeyError:
             logger.info("Creating a role object from %r" % role)
             role = Role(role)
     if isinstance(perms, six.string_types):
         perms = (perms,)
     if isinstance(perms, AllPermissionsList):
         self[role] = perms
     else:
         current = self.setdefault(role, set())
         if not isinstance(current, AllPermissionsList):
             current.update(perms)
コード例 #6
0
ファイル: roles.py プロジェクト: ArcheProject/Arche
 def get_any_local_with(self, role):
     assert isinstance(role, string_types) or IRole.providedBy(role)
     for (name, local_roles) in self.items():
         if role in local_roles:
             yield name
コード例 #7
0
ファイル: security.py プロジェクト: Jickelsen/Arche
 def add(self, role):
     assert IRole.providedBy(role)
     self.data.add(role)
コード例 #8
0
ファイル: security.py プロジェクト: Jickelsen/Arche
 def add(self, role):
     assert IRole.providedBy(role)
     self.data.add(role)