This is for selectively, temporarily, manually enabling admin mode
for a VM. Where it's not set, admin mode now bypasses quotas and does
nothing else.
svn path=/trunk/packages/sipb-xen-www/; revision=874
def haveAccess(user, state, machine):
"""Return whether a user has administrative access to a machine"""
- return state.isadmin or user in cache_acls.accessList(machine)
+ return (user in cache_acls.accessList(machine)
+ or (machine.adminable and state.isadmin))
def owns(user, machine):
"""Return whether a user owns a machine"""
"""Exceptions for the web interface."""
import time
+from invirt import database
from invirt.database import Machine, MachineAccess
class MyException(Exception):
def getMachines(self):
if self.isadmin:
- return Machine.select()
+ 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)