source: main/waeup.sirp/trunk/src/waeup/sirp/permissions.txt @ 7184

Last change on this file since 7184 was 7181, checked in by Henrik Bettermann, 13 years ago

StudentsOfficers? are not allowed to view the accommodation and payments containers of students. We therefore use the dedicated permissions waeup.handleAccommodation and waeup.payStudent.

Add role waeup.ACManager with permission waeup.manageACBatches which has already been uses in accesscodes.

File size: 2.2 KB
Line 
1WAeUP permissions and roles
2***************************
3
4Permissions and roles used in a WAeUP portal.
5
6.. :doctest:
7.. :layer: waeup.sirp.testing.WAeUPSIRPUnitTestLayer
8
9Convenience functions
10=====================
11
12:mod:`waeup.sirp` offers some convenience functions to handle security
13roles.
14
15:func:`getAllRoles`
16-------------------
17
18Gives us all roles defined in a WAeUP SIRP portal. 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.sirp.permissions import getAllRoles
27    >>> getAllRoles()
28    <generator object...at 0x...>
29
30    >>> sorted(list(getAllRoles()))
31    [(u'waeup.ACManager', <waeup.sirp.permissions.ACManager object at 0x...]
32
33:func:`getWAeUPRoles`
34---------------------
35
36Gives us all roles, except the WAeUP specific roles. We can get a list
37with or without local roles:
38
39    >>> from waeup.sirp.permissions import getWAeUPRoles
40    >>> len(list(getWAeUPRoles()))
41    10
42
43    >>> len(list(getWAeUPRoles(also_local=True)))
44    16
45
46
47:func:`getRoleNames`
48--------------------
49
50We can get all role names defined in a WAeUP portal (except 'local'
51roles that are meant not to be assigned globally):
52
53    >>> from waeup.sirp.permissions import getWAeUPRoleNames
54    >>> list(getWAeUPRoleNames())
55    [u'waeup.ACManager', u'waeup.AccommodationOfficer', u'waeup.Applicant',
56     u'waeup.ApplicationsOfficer',
57     u'waeup.PortalManager', u'waeup.PortalUser', u'waeup.Student',
58     u'waeup.StudentsClearanceOfficer', u'waeup.StudentsManager',
59     u'waeup.StudentsOfficer']
60
61:func:`get_users_with_local_roles`
62----------------------------------
63
64We can get all users and their roles for a certain context
65object. This even works for objects that cannot have local roles as
66they are not stored in the ZODB:
67
68    >>> from waeup.sirp.permissions import get_users_with_local_roles
69    >>> mycontext = object()
70    >>> people_and_roles = get_users_with_local_roles(mycontext)
71    >>> people_and_roles
72    <generator object...at 0x...>
73
74In this case, the result is empty:
75
76    >>> people_and_roles = list(people_and_roles)
77    >>> people_and_roles
78    []
Note: See TracBrowser for help on using the repository browser.