~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
26
27
    def __init__(self, req, context, subpath=None):
1294.2.50 by William Grant
Replace all base view __init__s with one at the root that sets the context.
28
        self.context = context
1294.2.59 by William Grant
Implement optional view subpath support.
29
        if self.subpath_allowed:
30
            self.subpath = subpath
1294.2.50 by William Grant
Replace all base view __init__s with one at the root that sets the context.
31
1099.1.1 by Matt Giuca
Began implementing new dispatch framework (with Will Grant and Nick Chadwick).
32
    def render(self, req):
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
33
        raise NotImplementedError()
34
35
    def get_permissions(self, user):
36
        return self.context.get_permissions(user)
37
38
    def authorize(self, req):
1099.4.5 by Nick Chadwick
Modified views, so that the list of permissions is now stored on the
39
        self.perms = self.get_permissions(req.user)
1099.1.110 by William Grant
Implement an authorization system in the new framework. This breaks the REST
40
1099.1.180 by Nick Chadwick
This commit changes the tutorial service, which now almost exclusively
41
        return self.permission is None or self.permission in self.perms