X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/cabbf7ab8e35de060f6f4e3f75670558ad25d9b5..17757a4f472d40dcbe3f9a4d071f3283cc17d745:/code/webcommon.py diff --git a/code/webcommon.py b/code/webcommon.py index 5911787..ce0ddc7 100644 --- a/code/webcommon.py +++ b/code/webcommon.py @@ -38,11 +38,17 @@ def cachedproperty(func): class State(object): """State for a request""" - def __init__(self, user): + def __init__(self, user, overlord=False): self.username = user + self.overlord = overlord - machines = cachedproperty(lambda self: - Machine.query().join('acl').select_by(user=self.username)) + def getMachines(self): + if self.overlord: + return Machine.select() + else: + return Machine.query().join('acl').select_by(user=self.username) + + machines = cachedproperty(getMachines) xmlist_raw = cachedproperty(lambda self: controls.getList()) xmlist = cachedproperty(lambda self: dict((m, self.xmlist_raw[m.name]) @@ -54,5 +60,3 @@ class State(object): for attr in list(self.__dict__): if attr.startswith('__cache_'): delattr(self, attr) - -state = State(None)