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

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

Add components for customer management. Some tests are still missing.

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