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

« back to all changes in this revision

Viewing changes to ivle/dispatch/__init__.py

  • Committer: chadnickbok
  • Date: 2009-01-20 00:27:27 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:1171
Fixes Issue #3

This commit changes dispatch to check if we are in public mode,
or if the currently logged-in user is a student.

In either case, error messages are not displayed

Show diffs side-by-side

added added

removed removed

Lines of Context:
193
193
        httpcode = None
194
194
        req.status = apache.HTTP_INTERNAL_SERVER_ERROR
195
195
    try:
 
196
        publicmode = req.publicmode
 
197
    except AttributeError:
 
198
        pass
 
199
    try:
196
200
        login = req.user.login
197
201
    except AttributeError:
198
202
        login = None
 
203
    try:
 
204
        role = req.user.role
 
205
    except AttributeError:
 
206
        role = None
199
207
 
200
208
    # Log File
201
209
    try:
291
299
 
292
300
        # Logging
293
301
        logging.error('%s\n%s'%(str(msg), tb))
294
 
 
 
302
        # Error messages are only displayed is the user is NOT a student,
 
303
        # or if there has been a problem logging the error message
 
304
        show_errors = (not publicmode) and (not login or \
 
305
                            (not str(role) == "student") or logfail)
295
306
        req.write("""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"                 
296
307
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">                                      
297
308
<html xmlns="http://www.w3.org/1999/xhtml">
298
309
<head><title>IVLE Internal Server Error</title></head>
299
310
<body>
300
311
<h1>IVLE Internal Server Error""")
301
 
        if (codename is not None
302
 
            and httpcode != apache.HTTP_INTERNAL_SERVER_ERROR):
303
 
            req.write(": %s" % cgi.escape(codename))
 
312
        if (show_errors):
 
313
            if (codename is not None
 
314
                        and httpcode != apache.HTTP_INTERNAL_SERVER_ERROR):
 
315
                req.write(": %s" % cgi.escape(codename))
 
316
        
304
317
        req.write("""</h1>
305
318
<p>An error has occured which is the fault of the IVLE developers or
306
 
administration.</p>
 
319
administration. The developers have been notified.</p>
307
320
""")
308
 
        if msg is not None:
309
 
            req.write("<p>%s</p>\n" % cgi.escape(msg))
310
 
        if httpcode is not None:
311
 
            req.write("<p>(HTTP error code %d)</p>\n" % httpcode)
312
 
        req.write("""
313
 
<p>Please report this to <a href="mailto:%s">%s</a> (the system
314
 
administrator). Include the following information:</p>
315
 
""" % (cgi.escape(admin_email), cgi.escape(admin_email)))
 
321
        if (show_errors):
 
322
            if msg is not None:
 
323
                req.write("<p>%s</p>\n" % cgi.escape(msg))
 
324
            if httpcode is not None:
 
325
                req.write("<p>(HTTP error code %d)</p>\n" % httpcode)
 
326
            req.write("""
 
327
    <p>Please report this to <a href="mailto:%s">%s</a> (the system
 
328
    administrator). Include the following information:</p>
 
329
    """ % (cgi.escape(admin_email), cgi.escape(admin_email)))
316
330
 
317
 
        req.write("<pre>\n%s\n</pre>\n"%cgi.escape(tb))
318
 
        if logfail:
319
 
            req.write("<p>Warning: Could not open Error Log: '%s'</p>\n"
320
 
                %cgi.escape(logfile))
 
331
            req.write("<pre>\n%s\n</pre>\n"%cgi.escape(tb))
 
332
            if logfail:
 
333
                req.write("<p>Warning: Could not open Error Log: '%s'</p>\n"
 
334
                    %cgi.escape(logfile))
321
335
        req.write("</body></html>")