Пример #1
0
 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
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
 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
 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
 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
 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
 def add(self, role):
     assert IRole.providedBy(role)
     self.data.add(role)
Пример #8
0
 def add(self, role):
     assert IRole.providedBy(role)
     self.data.add(role)