equal
deleted
inserted
replaced
14 |
14 |
15 # import standard library |
15 # import standard library |
16 |
16 |
17 # import interfaces |
17 # import interfaces |
18 from pyams_security.interfaces import IPermission |
18 from pyams_security.interfaces import IPermission |
19 from zope.schema.interfaces import IVocabularyFactory |
|
20 |
19 |
21 # import packages |
20 # import packages |
22 from pyams_utils.request import check_request |
21 from pyams_utils.request import check_request |
23 from zope.interface import implementer, provider |
22 from pyams_utils.vocabulary import vocabulary_config |
|
23 from zope.interface import implementer |
24 from zope.schema.fieldproperty import FieldProperty |
24 from zope.schema.fieldproperty import FieldProperty |
25 from zope.schema.vocabulary import getVocabularyRegistry, SimpleTerm, SimpleVocabulary |
25 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary |
26 |
26 |
27 |
27 |
28 @implementer(IPermission) |
28 @implementer(IPermission) |
29 class Permission(object): |
29 class Permission(object): |
30 """Permission utility class""" |
30 """Permission utility class""" |
51 if not IPermission.providedBy(permission): |
51 if not IPermission.providedBy(permission): |
52 permission = Permission(permission) |
52 permission = Permission(permission) |
53 config.registry.registerUtility(permission, IPermission, name=permission.id) |
53 config.registry.registerUtility(permission, IPermission, name=permission.id) |
54 |
54 |
55 |
55 |
56 @provider(IVocabularyFactory) |
56 @vocabulary_config(name='PyAMS permissions') |
57 class PermissionsVocabulary(SimpleVocabulary): |
57 class PermissionsVocabulary(SimpleVocabulary): |
58 """Permissions vocabulary""" |
58 """Permissions vocabulary""" |
59 |
59 |
60 interface = IPermission |
60 interface = IPermission |
61 |
61 |
65 translate = request.localizer.translate |
65 translate = request.localizer.translate |
66 terms = [SimpleTerm(p.id, title=translate(p.title)) |
66 terms = [SimpleTerm(p.id, title=translate(p.title)) |
67 for n, p in registry.getUtilitiesFor(self.interface)] |
67 for n, p in registry.getUtilitiesFor(self.interface)] |
68 terms.sort(key=lambda x: x.title) |
68 terms.sort(key=lambda x: x.title) |
69 super(PermissionsVocabulary, self).__init__(terms) |
69 super(PermissionsVocabulary, self).__init__(terms) |
70 |
|
71 getVocabularyRegistry().register('PyAMS permissions', PermissionsVocabulary) |
|