32 |
32 |
33 id = FieldProperty(IRole['id']) |
33 id = FieldProperty(IRole['id']) |
34 title = FieldProperty(IRole['title']) |
34 title = FieldProperty(IRole['title']) |
35 description = FieldProperty(IRole['description']) |
35 description = FieldProperty(IRole['description']) |
36 permissions = FieldProperty(IRole['permissions']) |
36 permissions = FieldProperty(IRole['permissions']) |
|
37 managers = FieldProperty(IRole['managers']) |
37 |
38 |
38 def __init__(self, values=None, **args): |
39 def __init__(self, values=None, **args): |
39 if not isinstance(values, dict): |
40 if not isinstance(values, dict): |
40 values = args |
41 values = args |
41 self.id = values.get('id') |
42 self.id = values.get('id') |
42 self.title = values.get('title') |
43 self.title = values.get('title') |
43 self.description = values.get('description') |
44 self.description = values.get('description') |
44 self.permissions = values.get('permissions') |
45 self.permissions = values.get('permissions') |
|
46 self.managers = values.get('managers') |
45 |
47 |
46 |
48 |
47 def register_role(config, role): |
49 def register_role(config, role): |
48 """Register a new role |
50 """Register a new role |
49 |
51 |
64 registry.registerUtility(role_utility, IRole, name=role_utility.id) |
66 registry.registerUtility(role_utility, IRole, name=role_utility.id) |
65 else: |
67 else: |
66 # new registration of a given role to add permissions |
68 # new registration of a given role to add permissions |
67 role_utility.permissions = (role_utility.permissions or set()) | \ |
69 role_utility.permissions = (role_utility.permissions or set()) | \ |
68 (role.get('permissions') or set()) |
70 (role.get('permissions') or set()) |
|
71 role_utility.managers = (role_utility.managers or set()) | \ |
|
72 (role.get('managers') or set()) |
69 else: |
73 else: |
70 registry.registerUtility(role, IRole, name=role.id) |
74 registry.registerUtility(role, IRole, name=role.id) |
71 |
75 |
72 |
76 |
73 @provider(IVocabularyFactory) |
77 @provider(IVocabularyFactory) |