"""Exceptions for the web interface."""
import time
-from sipb_xen_database import Machine, MachineAccess
+from invirt import database
+from invirt.database import Machine, MachineAccess
class MyException(Exception):
"""Base class for my exceptions"""
class State(object):
"""State for a request"""
- def __init__(self, user, overlord=False):
+ def __init__(self, user, isadmin=False):
self.username = user
- self.overlord = overlord
+ self.isadmin = isadmin
def getMachines(self):
- if self.overlord:
- return Machine.select()
+ if self.isadmin:
+ return Machine.query().join('acl').filter_by(
+ database.or_(MachineAccess.c.user == self.username,
+ Machine.c.adminable == True))
else:
- return Machine.query().join('acl').select_by(user=self.username)
+ return Machine.query().join('acl').filter_by(user=self.username)
machines = cachedproperty(getMachines)
xmlist_raw = cachedproperty(lambda self: controls.getList())