source: main/waeup.kofa/trunk/src/waeup/kofa/applicants/permissions.py @ 17932

Last change on this file since 17932 was 17850, checked in by Henrik Bettermann, 3 months ago

Add ExportApplication permission which allows bursary officers
to access the application section and export application data.

  • Property svn:keywords set to Id
File size: 4.3 KB
RevLine 
[7192]1## $Id: permissions.py 17850 2024-07-16 20:47:30Z henrik $
[6044]2##
[6478]3## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann
[6044]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.
[7192]8##
[6044]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.
[7192]13##
[6044]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
[6198]25class HandleApplication(grok.Permission):
[12847]26    """The HandleApplication permission is reserved for applicants.
27    Applicants 'handle' their data. Officers 'manage' the data.
28    """
[6198]29    grok.name('waeup.handleApplication')
[6044]30
[6367]31class ViewApplication(grok.Permission):
[12847]32    """The ViewApplication permission allows to view application records.
33    """
[6367]34    grok.name('waeup.viewApplication')
35
[7240]36class ViewApplicationsTab(grok.Permission):
[7250]37    grok.name('waeup.viewApplicantsTab')
[7240]38
39class ViewMyApplicationDataTab(grok.Permission):
40    grok.name('waeup.viewMyApplicationDataTab')
41
[7136]42class ManageApplication(grok.Permission):
[12847]43    """The ManageApplication permission allows to edit the data. This
44    permission is reserved for officers and portal managers.
45    """
[7136]46    grok.name('waeup.manageApplication')
[6044]47
[17850]48class ExportApplication(grok.Permission):
49    """The ExportApplication permission allows to export the data from a
50    container page.
51    """
52    grok.name('waeup.exportApplication')
53
[8565]54class ViewApplicationStatistics(grok.Permission):
[12847]55    """The ViewApplicationStatistics permission allows to perform statistical
[15085]56    evaluations.
[12847]57    """
[8565]58    grok.name('waeup.viewApplicationStatistics')
59
[7250]60class PayApplicant(grok.Permission):
[12847]61    """The PayApplicant permission allows to add an online payment ticket.
62    """
[7250]63    grok.name('waeup.payApplicant')
64
[14948]65class CreateStudents(grok.Permission):
66    """The CreateStudents permission allows to create a bunch student
67    records from application records.
68    """
69    grok.name('waeup.createStudents')
70
[6198]71# Local role
[12847]72
[6044]73class ApplicationOwner(grok.Role):
[12847]74    """An applicant 'owns' her/his application record and
75    gains permissions to handle the record, upload a passport picture or
76    add payment tickets.
77    """
[6044]78    grok.name('waeup.local.ApplicationOwner')
[6159]79    grok.title(u'Application Owner')
[12847]80    grok.permissions('waeup.handleApplication',
81                     'waeup.viewApplication',
[8367]82                     'waeup.payApplicant')
[6184]83
[12847]84# Site roles
[7166]85
86class ApplicantRole(grok.Role):
[12847]87    """This role is dedicated to applicants only. It defines the permissions
88    an applicant gains portal-wide.
89    """
[7166]90    grok.name('waeup.Applicant')
[14511]91    grok.title(u'Applicant (do not assign)')
[8367]92    grok.permissions('waeup.viewAcademics', 'waeup.viewMyApplicationDataTab',
93                     'waeup.Authenticated')
[7166]94
[6184]95class ApplicationsOfficer(grok.Role):
[12847]96    """The Applications Officer is allowed to view all application records.
97    """
[6198]98    grok.name('waeup.ApplicationsOfficer')
[10226]99    grok.title(u'Applications Officer (view only)')
100    grok.permissions('waeup.viewApplication', 'waeup.viewApplicantsTab')
101
102class ApplicationsManager(grok.Role):
[13098]103    """The Applications Manager is allowed to edit all application records.
[15085]104    The role also allows to add payment tickets and view statistics.
[12847]105    """
[10226]106    grok.name('waeup.ApplicationsManager')
107    grok.title(u'Applications Manager')
[8367]108    grok.permissions('waeup.manageApplication', 'waeup.viewApplication',
[15085]109                     'waeup.viewApplicantsTab', 'waeup.payApplicant',
[17850]110                     'waeup.viewApplicationStatistics',
111                     'waeup.exportApplication')
[14948]112
113class StudentsCreator(grok.Role):
114    """The Students Creator is allowed to create a bunch of student
115    records from application records.
116    """
117    grok.name('waeup.StudentsCreator')
118    grok.title(u'Students Creator')
119    grok.permissions('waeup.viewApplication',
120                     'waeup.viewApplicantsTab',
121                     'waeup.createStudents')
Note: See TracBrowser for help on using the repository browser.