equal
deleted
inserted
replaced
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() |