X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/aea62528d39fcdeaf94b440ef3e14992cb79f704..27dcf25cbe250f43ea32fc9bc7a4ec6691db66e9:/code/main.py diff --git a/code/main.py b/code/main.py index 5c30714..b160e63 100755 --- a/code/main.py +++ b/code/main.py @@ -51,10 +51,27 @@ class InvirtWeb(View): def __init__(self): super(self.__class__,self).__init__() connect() + self._cp_config['tools.require_login.on'] = True + self._cp_config['tools.mako.imports'] = ['from invirt.config import structs as config', + 'from invirt import database'] + + + @cherrypy.expose + @cherrypy.tools.mako(filename="/list.mako") + def list(self): + """Handler for list requests.""" + checkpoint.checkpoint('Getting list dict') + d = getListDict(cherrypy.request.login, cherrypy.request.state) + checkpoint.checkpoint('Got list dict') + return d + index=list @cherrypy.expose + @cherrypy.tools.mako(filename="/helloworld.mako") def helloworld(self): - return "Hello world!" + return {} + return "Hello world!\nYour request: "+repr(dir(cherrypy.request)) + helloworld._cp_config['tools.require_login.on'] = False def pathSplit(path): if path.startswith('/'): @@ -79,16 +96,6 @@ class Checkpoint: checkpoint = Checkpoint() -def jquote(string): - return "'" + string.replace('\\', '\\\\').replace("'", "\\'").replace('\n', '\\n') + "'" - -def helppopup(subj): - """Return HTML code for a (?) link to a specified help topic""" - return ('(?)') - def makeErrorPre(old, addition): if addition is None: return @@ -99,7 +106,6 @@ def makeErrorPre(old, addition): Template.database = database Template.config = config -Template.helppopup = staticmethod(helppopup) Template.err = None class JsonDict: @@ -228,13 +234,6 @@ def getListDict(username, state): can_clone=can_clone) return d -def listVms(username, state, path, fields): - """Handler for list requests.""" - checkpoint.checkpoint('Getting list dict') - d = getListDict(username, state) - checkpoint.checkpoint('Got list dict') - return templates.list(searchList=[d]) - def vnc(username, state, path, fields): """VNC applet page. @@ -637,7 +636,7 @@ def throwError(_, __, ___, ____): """Throw an error, to test the error-tracing mechanisms.""" raise RuntimeError("test of the emergency broadcast system") -mapping = dict(list=listVms, +mapping = dict(#list=listVms, vnc=vnc, command=command, modify=modify, @@ -683,21 +682,6 @@ def show_error(op, username, fields, err, emsg, traceback): d['details'] = details return templates.error(searchList=[d]) -def getUser(environ): - """Return the current user based on the SSL environment variables""" - user = environ.get('REMOTE_USER') - if user is None: - return - - if environ.get('AUTH_TYPE') == 'Negotiate': - # Convert the krb5 principal into a krb4 username - if not user.endswith('@%s' % config.kerberos.realm): - return - else: - return user.split('@')[0].replace('/', '.') - else: - return user - def handler(username, state, path, fields): operation, path = pathSplit(path) if not operation: