Made cache_acls use invirt.authz.
[invirt/packages/invirt-web.git] / code / main.py
index ecf0305..0b8af46 100755 (executable)
@@ -97,6 +97,9 @@ class InvirtWeb(View):
         return d
 
     def __getattr__(self, name):
+        # At the point __getattr__ is called, tools haven't been run. Make sure the user is logged in.
+        cherrypy.tools.remote_user_login.callable()
+
         if name in ("admin", "overlord"):
             if not cherrypy.request.login in getAfsGroupMembers(config.adminacl, config.authz.afs.cells[0].cell):
                 raise InvalidInput('username', cherrypy.request.login,
@@ -520,9 +523,9 @@ def modifyDict(username, state, machine_id, fields):
     olddisk = {}
     session.begin()
     try:
-        kws = dict([(kw, fields[kw]) for kw in
+        kws = dict((kw, fields[kw]) for kw in
          'owner admin contact name description memory vmtype disksize'.split()
-                    if fields[kw]])
+                    if fields.get(kw))
         kws['machine_id'] = machine_id
         validate = validation.Validate(username, state, **kws)
         machine = validate.machine