Index: package_branches/invirt-web/cherrypy-rebased/code/main.py
===================================================================
--- package_branches/invirt-web/cherrypy-rebased/code/main.py	(revision 2664)
+++ package_branches/invirt-web/cherrypy-rebased/code/main.py	(revision 2665)
@@ -52,8 +52,22 @@
         super(self.__class__,self).__init__()
         connect()
+        self._cp_config['tools.require_login.on'] = True
 
     @cherrypy.expose
+    @cherrypy.tools.mako(filename="/list.mako")
+    def list(self, username):
+        """Handler for list requests."""
+        checkpoint.checkpoint('Getting list dict')
+        d = getListDict(username, state)
+        checkpoint.checkpoint('Got list dict')
+        return templates.list(searchList=[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):
@@ -229,11 +243,4 @@
     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.
@@ -638,5 +645,5 @@
     raise RuntimeError("test of the emergency broadcast system")
 
-mapping = dict(list=listVms,
+mapping = dict(#list=listVms,
                vnc=vnc,
                command=command,
Index: package_branches/invirt-web/cherrypy-rebased/code/view.py
===================================================================
--- package_branches/invirt-web/cherrypy-rebased/code/view.py	(revision 2664)
+++ package_branches/invirt-web/cherrypy-rebased/code/view.py	(revision 2665)
@@ -68,4 +68,15 @@
 cherrypy.tools.jsonify = cherrypy.Tool('before_finalize', jsonify_tool_callback, priority=30)
 
+def external_remote_user_login():
+    pass
+
+def require_login():
+    """If the user isn't logged in, raise 403 with an error."""
+    if cherrypy.request.login is False:
+        raise cherrypy.HTTPError(403,
+            "You are not authorized to access that resource")
+
+cherrypy.tools.require_login = cherrypy.Tool('on_start_resource', require_login)
+
 class View(object):
     _cp_config = {'tools.mako.directories': [os.path.join(os.path.dirname(__file__),'templates')]}
