Remove the useless User class (now user is a string)
[invirt/packages/invirt-web.git] / templates / validation.py
index 005925c..0ee8d75 100644 (file)
@@ -24,7 +24,7 @@ def getMachinesByOwner(user, machine=None):
     if machine:
         owner = machine.owner
     else:
-        owner = user.username
+        owner = user
     return Machine.select_by(owner=owner)
 
 def maxMemory(user, machine=None, on=True):
@@ -68,22 +68,22 @@ def validAddVm(user):
 
 def haveAccess(user, machine):
     """Return whether a user has adminstrative access to a machine"""
-    if user.username == 'moo':
+    if user == 'moo':
         return True
-    if user.username in (machine.administrator, machine.owner):
+    if user in (machine.administrator, machine.owner):
         return True
-    if getafsgroups.checkAfsGroup(user.username, machine.administrator, 
+    if getafsgroups.checkAfsGroup(user, machine.administrator, 
                                   'athena.mit.edu'): #XXX Cell?
         return True
-    if getafsgroups.checkLockerOwner(user.username, machine.owner):
+    if getafsgroups.checkLockerOwner(user, machine.owner):
         return True
     return owns(user, machine)
 
 def owns(user, machine):
     """Return whether a user owns a machine"""
-    if user.username == 'moo':
+    if user == 'moo':
         return True
-    return getafsgroups.checkLockerOwner(user.username, machine.owner)
+    return getafsgroups.checkLockerOwner(user, machine.owner)
 
 def validMachineName(name):
     """Check that name is valid for a machine name"""
@@ -153,19 +153,21 @@ def testMachineId(user, machine_id, exists=True):
 def testAdmin(user, admin, machine):
     if admin in (None, machine.administrator):
         return None
-    if admin == user.username:
+    if admin == user:
         return admin
-    if getafsgroups.checkAfsGroup(user.username, admin, 'athena.mit.edu'):
+    if getafsgroups.checkAfsGroup(user, admin, 'athena.mit.edu'):
         return admin
-    if getafsgroups.checkAfsGroup(user.username, 'system:'+admin,
+    if getafsgroups.checkAfsGroup(user, 'system:'+admin,
                                   'athena.mit.edu'):
         return 'system:'+admin
     return admin
     
-def testOwner(user, owner, machine):
-    if owner in (None, machine.owner):
-        return None
-    value = getafsgroups.checkLockerOwner(user.username, owner, verbose=True)
+def testOwner(user, owner, machine=None):
+    if owner == user or machine is not None and owner == machine.owner:
+        return owner
+    if owner is None:
+        raise InvalidInput('owner', owner, "Owner must be specified")
+    value = getafsgroups.checkLockerOwner(user, owner, verbose=True)
     if not value:
         return owner
     raise InvalidInput('owner', owner, value)