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

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

Backup docs work done so far.

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