source: main/waeup.kofa/trunk/src/waeup/kofa/doctests/permissions.txt @ 16593

Last change on this file since 16593 was 15968, checked in by Henrik Bettermann, 5 years ago

Add waeup.local.ReportsOfficer role.

File size: 3.2 KB
Line 
1Permissions and Roles
2*********************
3
4Permissions and roles used in a Kofa portal.
5
6.. :doctest:
7.. :layer: waeup.kofa.testing.KofaUnitTestLayer
8
9Convenience Functions
10=====================
11
12:mod:`waeup.kofa` offers some convenience functions to handle security
13roles.
14
15:func:`get_all_roles`
16---------------------
17
18Gives us all roles defined in Kofa. 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.kofa.permissions import get_all_roles
27    >>> get_all_roles()
28    <generator object...at 0x...>
29
30    >>> sorted(list(get_all_roles()))
31    [(u'waeup.ACManager', <waeup.kofa.permissions.ACManager object at 0x...]
32
33:func:`get_waeup_roles`
34-----------------------
35
36Gives us all roles, except the Kofa specific roles. We can get a list
37with or without local roles:
38
39    >>> from waeup.kofa.permissions import get_waeup_roles
40    >>> len(list(get_waeup_roles()))
41    29
42
43    >>> len(list(get_waeup_roles(also_local=True)))
44    54
45
46
47:func:`get_waeup_role_names`
48----------------------------
49
50We can get all role names defined in Kofa (except 'local'
51roles that are meant not to be assigned globally):
52
53    >>> from waeup.kofa.permissions import get_waeup_role_names
54    >>> list(get_waeup_role_names())
55    [u'waeup.ACManager',
56     u'waeup.AcademicsManager',
57     u'waeup.AcademicsOfficer',
58     u'waeup.AccommodationOfficer',
59     u'waeup.Applicant',
60     u'waeup.ApplicationsManager',
61     u'waeup.ApplicationsOfficer',
62     u'waeup.BursaryOfficer',
63     u'waeup.DataCenterManager',
64     u'waeup.DocumentsManager',
65     u'waeup.DocumentsOfficer',
66     u'waeup.ExportManager',
67     u'waeup.FingerprintDevice',
68     u'waeup.ImportManager',
69     u'waeup.PortalManager',
70     u'waeup.ReportsManager',
71     u'waeup.ReportsOfficer',
72     u'waeup.Student',
73     u'waeup.StudentImpersonator',
74     u'waeup.StudentsClearanceOfficer',
75     u'waeup.StudentsCourseAdviser',
76     u'waeup.StudentsCreator',
77     u'waeup.StudentsManager',
78     u'waeup.StudentsOfficer',
79     u'waeup.TranscriptOfficer',
80     u'waeup.TranscriptSignee',
81     u'waeup.UsersManager',
82     u'waeup.WorkflowManager',
83     u'waeup.xmlrpcusers1']
84
85:func:`get_users_with_local_roles`
86----------------------------------
87
88We can get all users and their roles for a certain context
89object. This even works for objects that cannot have local roles as
90they are not stored in the ZODB:
91
92    >>> from waeup.kofa.permissions import get_users_with_local_roles
93    >>> mycontext = object()
94    >>> people_and_roles = get_users_with_local_roles(mycontext)
95    >>> people_and_roles
96    <generator object...at 0x...>
97
98In this case, the result is empty:
99
100    >>> people_and_roles = list(people_and_roles)
101    >>> people_and_roles
102    []
103
104:func:`get_users_with_role`
105---------------------------
106
107We can get all users with a specific role for a certain context
108object:
109
110    >>> from waeup.kofa.permissions import get_users_with_role
111    >>> mycontext = object()
112    >>> people = get_users_with_role('waeup.portalManager', mycontext)
113    >>> people
114    <generator object...at 0x...>
115
116In this case, the result is empty:
117
118    >>> people = list(people)
119    >>> people
120    []
Note: See TracBrowser for help on using the repository browser.