-def getUser(environ):
- """Return the current user based on the SSL environment variables"""
- email = environ.get('SSL_CLIENT_S_DN_Email', None)
- if email is None:
- return None
- if not email.endswith('@MIT.EDU'):
- return None
- return email[:-8]
+def show_error(op, username, fields, err, emsg, traceback):
+ """Print an error page when an exception occurs"""
+ d = dict(op=op, user=username, fields=fields,
+ errorMessage=str(err), stderr=emsg, traceback=traceback)
+ details = templates.error_raw(searchList=[d])
+ exclude = config.web.errormail_exclude
+ if username not in exclude and '*' not in exclude:
+ send_error_mail('xvm error on %s for %s: %s' % (op, username, err),
+ details)
+ d['details'] = details
+ return templates.error(searchList=[d])
+
+def handler(username, state, path, fields):
+ operation, path = pathSplit(path)
+ if not operation:
+ operation = 'list'
+ print 'Starting', operation
+ fun = mapping.get(operation, badOperation)
+ return fun(username, state, path, fields)