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

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

Rename functions according to the WAeUP style guide:

functions and methods with property decorator with underscore

methods with CamelCase

File size: 2.2 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
[7186]15:func:`get_all_roles`
16---------------------
[6157]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
[7186]26    >>> from waeup.sirp.permissions import get_all_roles
27    >>> get_all_roles()
[6333]28    <generator object...at 0x...>
[4127]29
[7186]30    >>> sorted(list(get_all_roles()))
[7181]31    [(u'waeup.ACManager', <waeup.sirp.permissions.ACManager object at 0x...]
[6157]32
[7186]33:func:`get_waeup_roles`
34-----------------------
[6157]35
36Gives us all roles, except the WAeUP specific roles. We can get a list
37with or without local roles:
38
[7186]39    >>> from waeup.sirp.permissions import get_waeup_roles
40    >>> len(list(get_waeup_roles()))
[7181]41    10
[6157]42
[7186]43    >>> len(list(get_waeup_roles(also_local=True)))
[7181]44    16
[6157]45
46
[7186]47:func:`get_waeup_role_names`
48----------------------------
[6157]49
50We can get all role names defined in a WAeUP portal (except 'local'
51roles that are meant not to be assigned globally):
52
[7186]53    >>> from waeup.sirp.permissions import get_waeup_role_names
54    >>> list(get_waeup_role_names())
[7185]55    [u'waeup.ACManager', u'waeup.AcademicsOfficer',
56     u'waeup.AccommodationOfficer', u'waeup.Applicant',
[7168]57     u'waeup.ApplicationsOfficer',
[7185]58     u'waeup.PortalManager', u'waeup.Student',
[7154]59     u'waeup.StudentsClearanceOfficer', u'waeup.StudentsManager',
60     u'waeup.StudentsOfficer']
[6202]61
62:func:`get_users_with_local_roles`
63----------------------------------
64
65We can get all users and their roles for a certain context
66object. This even works for objects that cannot have local roles as
67they are not stored in the ZODB:
68
69    >>> from waeup.sirp.permissions import get_users_with_local_roles
70    >>> mycontext = object()
71    >>> people_and_roles = get_users_with_local_roles(mycontext)
72    >>> people_and_roles
[6333]73    <generator object...at 0x...>
[6202]74
75In this case, the result is empty:
76
77    >>> people_and_roles = list(people_and_roles)
78    >>> people_and_roles
79    []
Note: See TracBrowser for help on using the repository browser.