X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/7ab93691b4b6a45e99f78b37796413c5f24629a4..4968927e695e31396ba840f07a61fab1424c5c76:/code/webcommon.py diff --git a/code/webcommon.py b/code/webcommon.py index 0449046..eaf533c 100644 --- a/code/webcommon.py +++ b/code/webcommon.py @@ -1,6 +1,7 @@ """Exceptions for the web interface.""" import time +from invirt import database from invirt.database import Machine, MachineAccess class MyException(Exception): @@ -38,13 +39,15 @@ def cachedproperty(func): 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').select_by( + database.or_(MachineAccess.c.user == self.username, + Machine.c.adminable == True)) else: return Machine.query().join('acl').select_by(user=self.username)