source: main/waeup.kofa/trunk/docs/source/userdocs/users.rst @ 12921

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

Wrap lines.

File size: 3.5 KB
Line 
1.. _users:
2
3Users
4*****
5
6Kofa distinguishes between four types of users: anonymous users,
7applicants, students, portal officers/managers and the Zope manager.
8Kofa distinguishes further between authenticated and unauthenticated
9users and between users with and without account object.
10
11The user authentication process in Kofa is quite complex. Briefly
12and in simple terms, a so-called authenticator (plugin) validates
13the credentials provided via the login form, fetches the matching
14account object, extracts the account data and finally leads to the
15creation of a temporary user object, a so-called principal. Kofa
16principals provide `name`, `title`, `email`, `phone`, `public_name`
17and `user_type` attributes.
18
19Anonymous
20=========
21
22Anonymous users do not authenticate and thus do not provide
23credentials. Their user id in logfiles is always ``zope.anybody``.
24These users gain two permissions: :py:class:`Anonymous
25<waeup.kofa.permissions.Anonymous>` and :py:class:`Public
26<waeup.kofa.permissions.Public>`.
27
28Only a few actions of anonymous users are logged. These are payment
29data webservice requests, the execution of password mandates and the
30self-registration of applicants.
31
32
33Applicants and Students
34=======================
35
36Logged-in applicants or students are regular authenticated Kofa
37users. Their user account object is an adaption of their
38applicant/student object. More precisely, the Applicant/Student
39authenticator fetches the matching applicant/student object and
40turns it on-the-fly into a Kofa account object which is further used
41for creating a principal instance. The `applicant_id`/`student_id`
42attribute becomes the user name and the `display_fullname` property
43serves as user title.
44
45
46Officers
47========
48
49Officers are users with a dedicated user account object stored in
50the ``users`` container (of type :py:class:`UsersContainer
51<waeup.kofa.userscontainer.UsersContainer>`) which is located in
52Kofa's root container. The officer account object has two more
53attributes than the principal instance which is created from the
54account data: (1) a `roles` attribute which is a list of global role
55names assigned to the officer, and (2) a private `_local_roles`
56attribute. The latter maps local role names to lists of objects the
57respective local role applies to. This information is important
58because local role assignment is originally stored only with the
59objects the role applies to and not with the user who got the role.
60When removing a user, Kofa iterates over the mapping and the list of
61objects in order to remove all these local role assignments denoted
62in the mapping.
63
64The management of portal officers is done in the 'Officers' section
65of Kofa. The management page shoes all officers registered in the
66portal together with their global and local roles. The table can be
67easily sorted or filtered.
68
69
70Manager
71=======
72
73There is one and only one manager account (user id ``zope.manager``)
74in Kofa. The manager has access to the root instance of the Kofa
75application which has its own user interface (see screenshot below).
76Through this 'Grok UI' the manager can access some basic functions
77to manage the database and also access the Kofa user interface.
78
79.. image:: Grok_UI.png
80
81Although the manager automatically gains all permissions the system
82defines, this real superuser (or emergency user) neither has an
83account in Kofa nor can access Kofa through its regular login page.
84The manager has to enter the portal through the Grok UI which
85usually ony runs on a localhost port, for example
86``http://localhost:8080``.
Note: See TracBrowser for help on using the repository browser.