source: main/waeup.ikoba/trunk/src/waeup/ikoba/permissions.txt @ 12800

Last change on this file since 12800 was 12764, checked in by Henrik Bettermann, 10 years ago

Configure permissions to view and manage payments.

File size: 2.8 KB
RevLine 
[11949]1Ikoba permissions and roles
[7321]2**************************
[4127]3
[11949]4Permissions and roles used in a Ikoba portal.
[4127]5
[5140]6.. :doctest:
[11949]7.. :layer: waeup.ikoba.testing.IkobaUnitTestLayer
[4127]8
[6157]9Convenience functions
10=====================
[4127]11
[11949]12:mod:`waeup.ikoba` offers some convenience functions to handle security
[6157]13roles.
14
[7186]15:func:`get_all_roles`
16---------------------
[6157]17
[11949]18Gives us all roles defined in Ikoba. We get tuples of
[6157]19kind
20
21  ``(<ROLE-NAME>, <ROLE>)``
22
23where ``<ROLE-NAME>`` is the name under which a role was registered
24with the ZCA (a string) and ``<ROLE>`` is the real role object.
25
[11949]26    >>> from waeup.ikoba.permissions import get_all_roles
[7186]27    >>> get_all_roles()
[6333]28    <generator object...at 0x...>
[4127]29
[7186]30    >>> sorted(list(get_all_roles()))
[11958]31    [(u'waeup.Customer', <waeup.ikoba.customers.permissions.CustomerRole object at 0x...]
[6157]32
[7186]33:func:`get_waeup_roles`
34-----------------------
[6157]35
[11949]36Gives us all roles, except the Ikoba specific roles. We can get a list
[6157]37with or without local roles:
38
[11949]39    >>> from waeup.ikoba.permissions import get_waeup_roles
[7186]40    >>> len(list(get_waeup_roles()))
[12764]41    17
[6157]42
[7186]43    >>> len(list(get_waeup_roles(also_local=True)))
[12764]44    21
[6157]45
46
[7186]47:func:`get_waeup_role_names`
48----------------------------
[6157]49
[11949]50We can get all role names defined in Ikoba (except 'local'
[6157]51roles that are meant not to be assigned globally):
52
[11949]53    >>> from waeup.ikoba.permissions import get_waeup_role_names
[7186]54    >>> list(get_waeup_role_names())
[11958]55    [u'waeup.Customer',
56    u'waeup.CustomerImpersonator',
57    u'waeup.CustomersManager',
58    u'waeup.CustomersOfficer',
59    u'waeup.DataCenterManager',
[12207]60    u'waeup.DocumentsManager',
61    u'waeup.DocumentsOfficer',
[11947]62    u'waeup.ExportManager',
63    u'waeup.ImportManager',
[12764]64    u'waeup.PaymentsManager',
65    u'waeup.PaymentsOfficer',
[11947]66    u'waeup.PortalManager',
67    u'waeup.ProductsManager',
68    u'waeup.ProductsOfficer',
69    u'waeup.UsersManager',
70    u'waeup.WorkflowManager',
71    u'waeup.xmlrpcusers1']
[6202]72
73:func:`get_users_with_local_roles`
74----------------------------------
75
76We can get all users and their roles for a certain context
77object. This even works for objects that cannot have local roles as
78they are not stored in the ZODB:
79
[11949]80    >>> from waeup.ikoba.permissions import get_users_with_local_roles
[6202]81    >>> mycontext = object()
82    >>> people_and_roles = get_users_with_local_roles(mycontext)
83    >>> people_and_roles
[6333]84    <generator object...at 0x...>
[6202]85
86In this case, the result is empty:
87
88    >>> people_and_roles = list(people_and_roles)
89    >>> people_and_roles
90    []
[9309]91
92:func:`get_users_with_role`
93---------------------------
94
95We can get all users with a specific role for a certain context
96object:
97
[11949]98    >>> from waeup.ikoba.permissions import get_users_with_role
[9309]99    >>> mycontext = object()
100    >>> people = get_users_with_role('waeup.portalManager', mycontext)
101    >>> people
102    <generator object...at 0x...>
103
104In this case, the result is empty:
105
106    >>> people = list(people)
107    >>> people
[10013]108    []
Note: See TracBrowser for help on using the repository browser.