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

« back to all changes in this revision

Viewing changes to ivle/dispatch/__init__.py

Remove most of the remaining legacy app glue from dispatch. Only the stuff
needed to run fileservice remains.

Show diffs side-by-side

added added

removed removed

Lines of Context:
201
201
        else:
202
202
            req.store.commit()
203
203
            return req.OK
 
204
    else:
 
205
        # We had no matching URL! Check if it matches an old-style app. If
 
206
        # not, 404.
 
207
        if req.app not in ivle.conf.apps.app_url:
 
208
            return req.HTTP_NOT_FOUND # TODO: Prettify.
204
209
    ### END New plugins framework ###
205
210
 
206
 
    # Check req.app to see if it is valid. 404 if not.
207
 
    if req.app is not None and req.app not in ivle.conf.apps.app_url:
208
 
        req.throw_error(Request.HTTP_NOT_FOUND,
209
 
            "There is no application called %s." % repr(req.app))
210
211
 
211
 
    # Special handling for public mode - only allow the public app, call it
212
 
    # and get out.
213
 
    # NOTE: This will not behave correctly if the public app uses
214
 
    # write_html_head_foot, but "serve" does not.
215
 
    if req.publicmode:
216
 
        if req.app != ivle.conf.apps.public_app:
217
 
            req.throw_error(Request.HTTP_FORBIDDEN,
218
 
                "This application is not available on the public site.")
219
 
        app = ivle.conf.apps.app_url[ivle.conf.apps.public_app]
220
 
        apps.call_app(app.dir, req)
221
 
        return req.OK
 
212
    ### BEGIN legacy application framework ###
 
213
    # We have no public apps back here.
 
214
    assert not req.publicmode
222
215
 
223
216
    # app is the App object for the chosen app
224
217
    if req.app is None:
244
237
        # sessions not time out.
245
238
        req.get_session().unlock()
246
239
 
247
 
        # If user did not specify an app, HTTP redirect to default app and
248
 
        # exit.
249
 
        if req.app is None:
250
 
            req.throw_redirect(util.make_path(ivle.conf.apps.default_app))
251
 
 
252
 
        # Set the default title to the app's tab name, if any. Otherwise URL
253
 
        # name.
254
 
        if app.name is not None:
255
 
            req.title = app.name
256
 
        else:
257
 
            req.title = req.app
258
 
 
259
240
        # Call the specified app with the request object
260
241
        apps.call_app(app.dir, req)
261
242
 
262
 
    # if not logged in, login.login will have written the login box.
263
 
    # Just clean up and exit.
264
 
 
265
243
    # MAKE SURE we write the HTTP (and possibly HTML) header. This
266
244
    # wouldn't happen if nothing else ever got written, so we have to make
267
245
    # sure.