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

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

Add ReportsOfficer? role. The RO is allowed to view and remove only his/her reports.

File size: 3.1 KB
Line 
1Kofa permissions 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    26
42
43    >>> len(list(get_waeup_roles(also_local=True)))
44    47
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.ImportManager',
68     u'waeup.PortalManager',
69     u'waeup.ReportsManager',
70     u'waeup.ReportsOfficer',
71     u'waeup.Student',
72     u'waeup.StudentImpersonator',
73     u'waeup.StudentsClearanceOfficer',
74     u'waeup.StudentsCourseAdviser',
75     u'waeup.StudentsManager',
76     u'waeup.StudentsOfficer',
77     u'waeup.TranscriptOfficer',
78     u'waeup.UsersManager',
79     u'waeup.WorkflowManager',
80     u'waeup.xmlrpcusers1']
81
82:func:`get_users_with_local_roles`
83----------------------------------
84
85We can get all users and their roles for a certain context
86object. This even works for objects that cannot have local roles as
87they are not stored in the ZODB:
88
89    >>> from waeup.kofa.permissions import get_users_with_local_roles
90    >>> mycontext = object()
91    >>> people_and_roles = get_users_with_local_roles(mycontext)
92    >>> people_and_roles
93    <generator object...at 0x...>
94
95In this case, the result is empty:
96
97    >>> people_and_roles = list(people_and_roles)
98    >>> people_and_roles
99    []
100
101:func:`get_users_with_role`
102---------------------------
103
104We can get all users with a specific role for a certain context
105object:
106
107    >>> from waeup.kofa.permissions import get_users_with_role
108    >>> mycontext = object()
109    >>> people = get_users_with_role('waeup.portalManager', mycontext)
110    >>> people
111    <generator object...at 0x...>
112
113In this case, the result is empty:
114
115    >>> people = list(people)
116    >>> people
117    []
Note: See TracBrowser for help on using the repository browser.