~azzar1/unity/add-show-desktop-key

1099.1.1 by Matt Giuca
Began implementing new dispatch framework (with Will Grant and Nick Chadwick).
1
# IVLE - Informatics Virtual Learning Environment
2
# Copyright (C) 2007-2009 The University of Melbourne
3
#
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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18
# Author: Matt Giuca, Will Grant
19
20
class BaseView(object):
21
    """
22
    Abstract base class for all view objects.
23
    """
1294.2.50 by William Grant
Replace all base view __init__s with one at the root that sets the context.
24
1294.2.59 by William Grant
Implement optional view subpath support.
25
    subpath_allowed = False
1673 by William Grant
Reject off-site non-GET requests.
26
    offsite_posts_allowed = False
1294.2.59 by William Grant
Implement optional view subpath support.
27
28
    def __init__(self, req, context, subpath=None):
1537 by William Grant
Add offering creation UI, and allow admins to change the subject or semester of existing offerings.
29
        self.req = req
1294.2.50 by William Grant
Replace all base view __init__s with one at the root that sets the context.
30
        self.context = context
1294.2.59 by William Grant
Implement optional view subpath support.
31
        if self.subpath_allowed:
32
            self.subpath = subpath
1294.2.50 by William Grant
Replace all base view __init__s with one at the root that sets the context.
33
1099.1.1 by Matt Giuca
Began implementing new dispatch framework (with Will Grant and Nick Chadwick).
34
    def render(self, req):
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
35
        raise NotImplementedError()
36
1544 by Matt Giuca
Added an argument 'config' to every single get_permissions method throughout the program. All calls to get_permissions pass a config. This is to allow per-site policy configurations on permissions.
37
    def get_permissions(self, user, config):
38
        return self.context.get_permissions(user, config)
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
39
40
    def authorize(self, req):
1544 by Matt Giuca
Added an argument 'config' to every single get_permissions method throughout the program. All calls to get_permissions pass a config. This is to allow per-site policy configurations on permissions.
41
        self.perms = self.get_permissions(req.user, req.config)
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
42
1099.1.180 by Nick Chadwick
This commit changes the tutorial service, which now almost exclusively
43
        return self.permission is None or self.permission in self.perms