source: main/waeup.kofa/trunk/docs/source/userdocs/security.rst @ 12847

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

Update security documentation.

File size: 8.3 KB
Line 
1.. _security_policy:
2
3Security
4********
5
6Kofa has a very efficient security machinery. The machinery does not perform authorization checks on the content objects themselves stored in the database but restricts the usage of views, i.e. web pages and forms which are needed to view or edit data. Views are protected by permissions the user must have to use the view. Instead of assigning permissions seperately to users, permissions are bundled into sets of permissions, so-called roles which can be assigned to users through the web interface.
7
8It is important to note that permissions do not include other permissions. Only roles 'include' permissions. A 'manage' permission, for example, does not automatically enable users to open pages which merely display the data. These pages have their own 'view' permission. Another example is the ManagePortal permission described below. The name of the permission may lead to believe that users can do everything with this permssions. This is not true. It does only give access to certain pages which are dedicated to portal managers and must not be accessed by any other user.
9
10.. contents::
11
12Permissions
13===========
14
15The whole set of permission and role classes are described in the :py:mod:`Permissions and Roles Module<waeup.kofa.permissions>`. Here we describe only a subset of permission classes which are essential for the security settings configuration.
16
17General Permissions
18-------------------
19
20.. autoclass:: waeup.kofa.permissions.Public()
21   :noindex:
22
23.. autoclass:: waeup.kofa.permissions.Anonymous()
24   :noindex:
25
26.. autoclass:: waeup.kofa.permissions.Authenticated()
27   :noindex:
28
29.. autoclass:: waeup.kofa.permissions.ManageUsers()
30   :noindex:
31
32.. autoclass:: waeup.kofa.permissions.EditUser()
33   :noindex:
34
35.. autoclass:: waeup.kofa.permissions.ManagePortal()
36   :noindex:
37
38.. autoclass:: waeup.kofa.permissions.ViewAcademics()
39   :noindex:
40
41.. autoclass:: waeup.kofa.permissions.ManageAcademics()
42   :noindex:
43
44.. autoclass:: waeup.kofa.permissions.ManagePortalConfiguration()
45   :noindex:
46
47.. autoclass:: waeup.kofa.permissions.ManageDataCenter()
48   :noindex:
49
50.. autoclass:: waeup.kofa.permissions.ExportData()
51   :noindex:
52
53.. autoclass:: waeup.kofa.permissions.ImportData()
54   :noindex:
55
56.. autoclass:: waeup.kofa.permissions.TriggerTransition()
57   :noindex:
58
59.. autoclass:: waeup.kofa.permissions.ShowStudents()
60   :noindex:
61
62.. autoclass:: waeup.kofa.reports.ManageReports()
63   :noindex:
64
65Application Section Permissions
66-------------------------------
67
68.. autoclass:: waeup.kofa.applicants.permissions.ViewApplication()
69   :noindex:
70
71.. autoclass:: waeup.kofa.applicants.permissions.HandleApplication()
72   :noindex:
73
74.. autoclass:: waeup.kofa.applicants.permissions.ManageApplication()
75   :noindex:
76
77.. autoclass:: waeup.kofa.applicants.permissions.PayApplicant()
78   :noindex:
79
80.. autoclass:: waeup.kofa.applicants.permissions.ViewApplicationStatistics()
81   :noindex:
82
83Student Section Permissions
84---------------------------
85
86.. autoclass:: waeup.kofa.students.permissions.ViewStudent()
87   :noindex:
88
89.. autoclass:: waeup.kofa.students.permissions.HandleStudent()
90   :noindex:
91
92.. autoclass:: waeup.kofa.students.permissions.ViewStudentsContainer()
93   :noindex:
94
95.. autoclass:: waeup.kofa.students.permissions.ManageStudent()
96   :noindex:
97
98.. autoclass:: waeup.kofa.students.permissions.PayStudent()
99   :noindex:
100
101.. autoclass:: waeup.kofa.students.permissions.HandleAccommodation()
102   :noindex:
103
104.. autoclass:: waeup.kofa.students.permissions.UploadStudentFile()
105   :noindex:
106
107.. autoclass:: waeup.kofa.students.permissions.ClearStudent()
108   :noindex:
109
110.. autoclass:: waeup.kofa.students.permissions.TriggerTransition()
111   :noindex:
112
113.. autoclass:: waeup.kofa.students.permissions.LoginAsStudent()
114   :noindex:
115
116.. autoclass:: waeup.kofa.students.permissions.EditStudyLevel()
117   :noindex:
118
119.. autoclass:: waeup.kofa.students.permissions.ClearStudent()
120   :noindex:
121
122.. autoclass:: waeup.kofa.students.permissions.ValidateStudent()
123   :noindex:
124
125Global Roles
126============
127
128Global or site roles are assigned portal-wide. In contrast to local roles, users have this role in every context.
129
130Many global roles do only bundle one or two permissions. The objective behind is to share responsibilities and distribute tasks.
131
132Global roles are being assigned via the user manage form page.
133
134Global General Roles
135--------------------
136
137.. autoclass:: waeup.kofa.permissions.AcademicsOfficer()
138   :noindex:
139
140.. autoclass:: waeup.kofa.permissions.AcademicsManager()
141   :noindex:
142
143.. autoclass:: waeup.kofa.permissions.DataCenterManager()
144   :noindex:
145
146.. autoclass:: waeup.kofa.permissions.ImportManager()
147   :noindex:
148
149.. autoclass:: waeup.kofa.permissions.ExportManager()
150   :noindex:
151
152.. autoclass:: waeup.kofa.permissions.ACManager()
153   :noindex:
154
155.. autoclass:: waeup.kofa.permissions.UsersManager()
156   :noindex:
157
158.. autoclass:: waeup.kofa.permissions.WorkflowManager()
159   :noindex:
160
161.. autoclass:: waeup.kofa.reports.ReportsManager()
162   :noindex:
163
164In contrast to these specialized sets of permissions, there are two sets which delegate extensive powers on portal managers.
165
166.. autoclass:: waeup.kofa.permissions.PortalManager()
167   :noindex:
168
169.. autoclass:: waeup.kofa.permissions.CCOfficer()
170   :noindex:
171
172Global Application Section Roles
173--------------------------------
174
175Global Application Section Roles are assigned portal-wide (globally) but do actually only allocate permissions in the Application Section.
176
177.. autoclass:: waeup.kofa.applicants.permissions.ApplicantRole()
178   :noindex:
179
180.. autoclass:: waeup.kofa.applicants.permissions.ApplicationsOfficer()
181   :noindex:
182
183.. autoclass:: waeup.kofa.applicants.permissions.ApplicationsManager()
184   :noindex:
185
186Global Student Section Roles
187----------------------------
188
189Global Student Section Roles are assigned portal-wide (globally) but do actually only allocate permissions in the Student Section.
190
191.. autoclass:: waeup.kofa.students.permissions.StudentRole()
192   :noindex:
193
194.. autoclass:: waeup.kofa.students.permissions.StudentsOfficer()
195   :noindex:
196
197.. autoclass:: waeup.kofa.students.permissions.StudentsManager()
198   :noindex:
199
200.. autoclass:: waeup.kofa.students.permissions.StudentsClearanceOfficer()
201   :noindex:
202
203.. autoclass:: waeup.kofa.students.permissions.StudentsCourseAdviser()
204   :noindex:
205
206.. autoclass:: waeup.kofa.students.permissions.StudentImpersonator()
207   :noindex:
208
209Local Roles and Dynamic Role Assignment
210=======================================
211
212In contrast to global roles, which are assigned portal-wide, local role permissions are gained for a specific context.
213
214Some local roles serve a second purpose. At first glance it appears strange that some of these 'odd' roles do not give more permissions than the user already has due to other roles. Their real purpose is to delegate permissions to the students or application section. If a user has for example the LocalStudentsManager role described below at department level, s/he automatically gets the StudentsManager role for those students studying in this department. We call this a **dynamic role**. In contrast to static global or local roles, dynamic roles are not stored in the database, they are dynamically assigned.
215
216Local roles are assigned either automatically by the system during user object setup or manually through the web interface. The automatically assigned local roles are:
217
218.. autoclass:: waeup.kofa.permissions.Owner()
219   :noindex:
220
221.. autoclass:: waeup.kofa.applicants.permissions.ApplicationOwner()
222   :noindex:
223
224.. autoclass:: waeup.kofa.students.permissions.StudentRecordOwner()
225   :noindex:
226
227All other local roles must be assigned manually via context manage form pages.
228
229.. autoclass:: waeup.kofa.permissions.ApplicationManager()
230   :noindex:
231
232.. autoclass:: waeup.kofa.permissions.DepartmentOfficer()
233   :noindex:
234
235.. autoclass:: waeup.kofa.permissions.DepartmentManager()
236   :noindex:
237
238.. autoclass:: waeup.kofa.permissions.Lecturer()
239   :noindex:
240
241The following local roles do also delegate permissions to the student section. In other words, dynamic roles are assigned.
242
243.. autoclass:: waeup.kofa.permissions.ClearanceOfficer()
244   :noindex:
245
246.. autoclass:: waeup.kofa.permissions.LocalStudentsManager()
247   :noindex:
248
249.. autoclass:: waeup.kofa.permissions.LocalWorkflowManager()
250   :noindex:
251
252.. autoclass:: waeup.kofa.permissions.UGClearanceOfficer()
253   :noindex:
254
255.. autoclass:: waeup.kofa.permissions.PGClearanceOfficer()
256   :noindex:
257
258.. autoclass:: waeup.kofa.permissions.CourseAdviser100()
259   :noindex:
Note: See TracBrowser for help on using the repository browser.