source: main/waeup.kofa/branches/henrik-transcript-workflow/src/waeup/kofa/applicants/permissions.py @ 15127

Last change on this file since 15127 was 15085, checked in by Henrik Bettermann, 6 years ago

Allow ApplicationsManager to view statistics.

  • Property svn:keywords set to Id
File size: 4.1 KB
Line 
1## $Id: permissions.py 15085 2018-07-11 04:28:32Z henrik $
2##
3## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
4## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
6## the Free Software Foundation; either version 2 of the License, or
7## (at your option) any later version.
8##
9## This program is distributed in the hope that it will be useful,
10## but WITHOUT ANY WARRANTY; without even the implied warranty of
11## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12## GNU General Public License for more details.
13##
14## You should have received a copy of the GNU General Public License
15## along with this program; if not, write to the Free Software
16## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17##
18"""
19Local permissions for applicants/applications.
20"""
21import grok
22
23# Application permissions
24
25class HandleApplication(grok.Permission):
26    """The HandleApplication permission is reserved for applicants.
27    Applicants 'handle' their data. Officers 'manage' the data.
28    """
29    grok.name('waeup.handleApplication')
30
31class ViewApplication(grok.Permission):
32    """The ViewApplication permission allows to view application records.
33    """
34    grok.name('waeup.viewApplication')
35
36class ViewApplicationsTab(grok.Permission):
37    grok.name('waeup.viewApplicantsTab')
38
39class ViewMyApplicationDataTab(grok.Permission):
40    grok.name('waeup.viewMyApplicationDataTab')
41
42class ManageApplication(grok.Permission):
43    """The ManageApplication permission allows to edit the data. This
44    permission is reserved for officers and portal managers.
45    """
46    grok.name('waeup.manageApplication')
47
48class ViewApplicationStatistics(grok.Permission):
49    """The ViewApplicationStatistics permission allows to perform statistical
50    evaluations.
51    """
52    grok.name('waeup.viewApplicationStatistics')
53
54class PayApplicant(grok.Permission):
55    """The PayApplicant permission allows to add an online payment ticket.
56    """
57    grok.name('waeup.payApplicant')
58
59class CreateStudents(grok.Permission):
60    """The CreateStudents permission allows to create a bunch student
61    records from application records.
62    """
63    grok.name('waeup.createStudents')
64
65# Local role
66
67class ApplicationOwner(grok.Role):
68    """An applicant 'owns' her/his application record and
69    gains permissions to handle the record, upload a passport picture or
70    add payment tickets.
71    """
72    grok.name('waeup.local.ApplicationOwner')
73    grok.title(u'Application Owner')
74    grok.permissions('waeup.handleApplication',
75                     'waeup.viewApplication',
76                     'waeup.payApplicant')
77
78# Site roles
79
80class ApplicantRole(grok.Role):
81    """This role is dedicated to applicants only. It defines the permissions
82    an applicant gains portal-wide.
83    """
84    grok.name('waeup.Applicant')
85    grok.title(u'Applicant (do not assign)')
86    grok.permissions('waeup.viewAcademics', 'waeup.viewMyApplicationDataTab',
87                     'waeup.Authenticated')
88
89class ApplicationsOfficer(grok.Role):
90    """The Applications Officer is allowed to view all application records.
91    """
92    grok.name('waeup.ApplicationsOfficer')
93    grok.title(u'Applications Officer (view only)')
94    grok.permissions('waeup.viewApplication', 'waeup.viewApplicantsTab')
95
96class ApplicationsManager(grok.Role):
97    """The Applications Manager is allowed to edit all application records.
98    The role also allows to add payment tickets and view statistics.
99    """
100    grok.name('waeup.ApplicationsManager')
101    grok.title(u'Applications Manager')
102    grok.permissions('waeup.manageApplication', 'waeup.viewApplication',
103                     'waeup.viewApplicantsTab', 'waeup.payApplicant',
104                     'waeup.viewApplicationStatistics')
105
106class StudentsCreator(grok.Role):
107    """The Students Creator is allowed to create a bunch of student
108    records from application records.
109    """
110    grok.name('waeup.StudentsCreator')
111    grok.title(u'Students Creator')
112    grok.permissions('waeup.viewApplication',
113                     'waeup.viewApplicantsTab',
114                     'waeup.createStudents')
Note: See TracBrowser for help on using the repository browser.