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

« back to all changes in this revision

Viewing changes to ivle/dispatch/__init__.py

  • Committer: William Grant
  • Date: 2009-04-28 08:17:26 UTC
  • Revision ID: grantw@unimelb.edu.au-20090428081726-7h8fyjclxtydjma0
No more ivle.conf in ivle.webapp.fileservice...

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
import routes
41
41
 
42
42
from ivle import util
43
 
import ivle.conf
 
43
import ivle.config
44
44
from ivle.dispatch.request import Request
45
45
import ivle.webapp.security
46
46
from ivle.webapp.base.plugins import ViewPlugin, PublicViewPlugin
47
47
from ivle.webapp.base.xhtml import XHTMLView, XHTMLErrorView
48
48
from ivle.webapp.errors import HTTPError, Unauthorized, NotFound
49
49
 
50
 
def generate_route_mapper(view_plugins, attr):
 
50
config = ivle.config.Config()
 
51
 
 
52
def generate_router(view_plugins, attr):
51
53
    """
52
54
    Build a Mapper object for doing URL matching using 'routes', based on the
53
55
    given plugin registry.
71
73
    @param apachereq: An Apache request object.
72
74
    """
73
75
    # Make the request object into an IVLE request which can be given to views
74
 
    req = Request(apachereq)
 
76
    req = Request(apachereq, config)
75
77
 
76
78
    # Hack? Try and get the user login early just in case we throw an error
77
79
    # (most likely 404) to stop us seeing not logged in even when we are.
82
84
        if user and user.valid:
83
85
            req.user = user
84
86
 
85
 
    conf = ivle.config.Config()
86
 
    req.config = conf
87
 
 
88
87
    if req.publicmode:
89
 
        req.mapper = generate_route_mapper(conf.plugin_index[PublicViewPlugin],
90
 
                                           'public_urls')
 
88
        req.mapper = generate_router(config.plugin_index[PublicViewPlugin],
 
89
                                    'public_urls')
91
90
    else:
92
 
        req.mapper = generate_route_mapper(conf.plugin_index[ViewPlugin],
93
 
                                           'urls')
 
91
        req.mapper = generate_router(config.plugin_index[ViewPlugin], 'urls')
94
92
 
95
93
    matchdict = req.mapper.match(req.uri)
96
94
    if matchdict is not None:
128
126
                return req.OK
129
127
            else:
130
128
                return e.code
 
129
        except mod_python.apache.SERVER_RETURN:
 
130
            # A mod_python-specific Apache error.
 
131
            # XXX: We need to raise these because req.throw_error() uses them.
 
132
            # Remove this after Google Code issue 117 is fixed.
 
133
            raise
131
134
        except Exception, e:
132
135
            # A non-HTTPError appeared. We have an unknown exception. Panic.
133
136
            handle_unknown_exception(req, *sys.exc_info())
150
153
    the IVLE request is created.
151
154
    """
152
155
    req.content_type = "text/html"
153
 
    logfile = os.path.join(ivle.conf.log_path, 'ivle_error.log')
 
156
    logfile = os.path.join(config['paths']['logs'], 'ivle_error.log')
154
157
    logfail = False
155
158
    try:
156
159
        httpcode = exc_value.httpcode