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

Last change on this file since 17930 was 17253, checked in by Henrik Bettermann, 21 months ago

Add AccommodationViewer role.

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