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

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

Add global role 'waeup.AccommodationOfficer?'.

File size: 2.1 KB
RevLine 
[4127]1WAeUP permissions and roles
2***************************
3
4Permissions and roles used in a WAeUP portal.
5
[5140]6.. :doctest:
7.. :layer: waeup.sirp.testing.WAeUPSIRPUnitTestLayer
[4127]8
[6157]9Convenience functions
10=====================
[4127]11
[6157]12:mod:`waeup.sirp` offers some convenience functions to handle security
13roles.
14
15:func:`getRoles`
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
[4920]26    >>> from waeup.sirp.permissions import getRoles
[4127]27    >>> getRoles()
[6333]28    <generator object...at 0x...>
[4127]29
[6157]30    >>> sorted(list(getRoles()))
[6960]31    [(u'waeup.AccommodationOfficer', <waeup.sirp.hostels.permissions.AccommodationOfficer object at 0x...]
[6157]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()))
[6960]41    6
[6157]42
43    >>> len(list(getWAeUPRoles(also_local=True)))
[6960]44    11
[6157]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())
[6960]55    [u'waeup.AccommodationOfficer', u'waeup.ApplicationsOfficer', u'waeup.PortalManager',
[6677]56     u'waeup.PortalUser', u'waeup.Student', u'waeup.StudentsOfficer']
[6202]57
58:func:`get_users_with_local_roles`
59----------------------------------
60
61We can get all users and their roles for a certain context
62object. This even works for objects that cannot have local roles as
63they are not stored in the ZODB:
64
65    >>> from waeup.sirp.permissions import get_users_with_local_roles
66    >>> mycontext = object()
67    >>> people_and_roles = get_users_with_local_roles(mycontext)
68    >>> people_and_roles
[6333]69    <generator object...at 0x...>
[6202]70
71In this case, the result is empty:
72
73    >>> people_and_roles = list(people_and_roles)
74    >>> people_and_roles
75    []
Note: See TracBrowser for help on using the repository browser.