src/pyams_security/plugin/group.py
changeset 42 07229ac2497b
parent 15 cb45428a26a1
child 45 4d5db00d12b9
equal deleted inserted replaced
41:905e30f5467b 42:07229ac2497b
    17 import logging
    17 import logging
    18 logger = logging.getLogger('PyAMS(security)')
    18 logger = logging.getLogger('PyAMS(security)')
    19 
    19 
    20 # import interfaces
    20 # import interfaces
    21 from pyams_security.interfaces import IGroupsFolderPlugin, ILocalGroup, IPrincipalsAddedToGroupEvent, \
    21 from pyams_security.interfaces import IGroupsFolderPlugin, ILocalGroup, IPrincipalsAddedToGroupEvent, \
    22     IPrincipalsRemovedFromGroupEvent, PrincipalsAddedToGroupEvent, PrincipalsRemovedFromGroupEvent
    22     IPrincipalsRemovedFromGroupEvent, PrincipalsAddedToGroupEvent, PrincipalsRemovedFromGroupEvent, ISecurityManager
    23 from zope.lifecycleevent.interfaces import IObjectAddedEvent
    23 from zope.lifecycleevent.interfaces import IObjectAddedEvent
    24 
    24 
    25 # import packages
    25 # import packages
    26 from BTrees import OOBTree
    26 from BTrees import OOBTree
    27 from persistent import Persistent
    27 from persistent import Persistent
    81         """Check for existence of given group ID"""
    81         """Check for existence of given group ID"""
    82         if not group_id:
    82         if not group_id:
    83             return False
    83             return False
    84         return group_id not in self
    84         return group_id not in self
    85 
    85 
    86     def get_principal(self, principal_id):
    86     def get_principal(self, principal_id, info=True):
    87         if not self.enabled:
    87         if not self.enabled:
    88             return None
    88             return None
    89         if not principal_id.startswith(self.prefix + ':'):
    89         if not principal_id.startswith(self.prefix + ':'):
    90             return None
    90             return None
    91         prefix, group_id = principal_id.split(':', 1)
    91         prefix, group_id = principal_id.split(':', 1)
    92         group = self.get(group_id)
    92         group = self.get(group_id)
    93         if group is not None:
    93         if group is not None:
    94             return PrincipalInfo(id='{prefix}:{group_id}'.format(prefix=self.prefix,
    94             if info:
    95                                                                  group_id=group.group_id),
    95                 return PrincipalInfo(id='{prefix}:{group_id}'.format(prefix=self.prefix,
    96                                  title=group.title)
    96                                                                      group_id=group.group_id),
       
    97                                      title=group.title)
       
    98             else:
       
    99                 return group
    97 
   100 
    98     def get_all_principals(self, principal_id, seen=None):
   101     def get_all_principals(self, principal_id, seen=None):
    99         if not self.enabled:
   102         if not self.enabled:
   100             return set()
   103             return set()
   101         principals = self.groups_by_principal.get(principal_id) or set()
   104         principals = self.groups_by_principal.get(principal_id) or set()