source: main/waeup.sirp/trunk/src/waeup/sirp/applicants/dynamicroles.py @ 10222

Last change on this file since 10222 was 7347, checked in by Henrik Bettermann, 13 years ago

Rollback of r7341 as discussed on the phone. But now we get other problems (see email). A regression test will follow.

  • Property svn:keywords set to Id
File size: 1.7 KB
Line 
1## $Id: dynamicroles.py 7347 2011-12-14 22:34:02Z 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"""Security policy components for applicants.
19
20Applicants need special security policy treatment, as officers with
21local roles for departments and faculties might have additional
22permissions (local roles on depts/faculties) here.
23"""
24import grok
25from zope.securitypolicy.interfaces import IPrincipalRoleManager
26from waeup.sirp.applicants.interfaces import IApplicant
27from waeup.sirp.students.dynamicroles import StudentPrincipalRoleManager
28
29# All components in here have the same context: Applicant instances
30grok.context(IApplicant)
31
32class ApplicantPrincipalRoleManager(StudentPrincipalRoleManager):
33
34    grok.provides(IPrincipalRoleManager)
35
36    #: The attribute name to lookup for additional roles
37    extra_attrib = 'course1'
38    subcontainer = None
39
40    # Role name mapping:
41    # role name to look for in `extra_attrib` and parents
42    # to
43    # role to add in case this role was found
44    rolename_mapping = {
45        'waeup.local.ClearanceOfficer':'waeup.ApplicationsOfficer',
46        }
Note: See TracBrowser for help on using the repository browser.