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

« back to all changes in this revision

Viewing changes to src/dispatch/__init__.py

  • Committer: mattgiuca
  • Date: 2007-12-12 05:42:32 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:44
dispatch: Now looks up the application in the App DB. Determines whether it is
a valid app, whether it requires auth, and redirects an empty path to the
default app.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
# Handles authentication (not authorization).
27
27
# Then passes the request along to the appropriate ivle app.
28
28
 
 
29
import mod_python
29
30
from mod_python import apache
 
31
 
30
32
import os
31
33
import os.path
32
34
import conf
34
36
 
35
37
from request import Request
36
38
import html
37
 
import common.util
38
 
from common.util import make_path
 
39
from common import util
39
40
 
40
41
def handler(req):
41
42
    """Handles a request which may be to anywhere in the site except media.
44
45
    req: An Apache request object.
45
46
    """
46
47
    # Make the request object into an IVLE request which can be passed to apps
 
48
    apachereq = req
47
49
    req = Request(req, html.write_html_head)
48
50
 
49
 
    # TODO: Check req.app to see if it is valid. 404 if not.
50
 
 
51
 
    # TODO: Check if app requires auth. If so, perform authentication and
52
 
    # login.
53
 
 
54
 
    # TODO: If user did not specify an app, HTTP redirect to default app and
55
 
    # exit.
 
51
    # Check req.app to see if it is valid. 404 if not.
 
52
    if req.app != None and req.app not in conf.apps.app_url:
 
53
        # TODO: Nicer 404 message?
 
54
        return apache.HTTP_NOT_FOUND
 
55
 
 
56
    # app is the App object for the chosen app
 
57
    if req.app == None:
 
58
        app = conf.apps.app_url[conf.default_app]
 
59
    else:
 
60
        app = conf.apps.app_url[req.app]
 
61
 
 
62
    # Check if app requires auth. If so, perform authentication and login.
 
63
    if app.requireauth:
 
64
        # TODO: Perform authentication
 
65
        pass
 
66
 
 
67
    # If user did not specify an app, HTTP redirect to default app and exit.
 
68
    if req.app == None:
 
69
        mod_python.util.redirect(apachereq, util.make_path(conf.default_app))
56
70
 
57
71
    # Call the specified app with the request object
58
72
    # TODO: Call a real app.
84
98
        req.write('<b>No app specified</b>')
85
99
    else:
86
100
        req.write('<b>' + req.app + '</b> ')
87
 
        req.write('<img src="' + make_path("media/images/mime/dir.png")
 
101
        req.write('<img src="' + util.make_path("media/images/mime/dir.png")
88
102
            + '" /> ')
89
103
        req.write(str(req.path))
90
104
    req.write("</p>\n")
103
117
    for urlname in conf.apps.apps_in_tabs:
104
118
        app = conf.apps.app_url[urlname]
105
119
        file.write('  <li><a href="')
106
 
        file.write(make_path(app.dir))
 
120
        file.write(util.make_path(app.dir))
107
121
        file.write('">')
108
122
        file.write(app.name)
109
123
        file.write('</a></li>\n')