X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/b812ecb815635726dca92b6c3725ac0a4bb86ab6..7b924b8f4ec3c62b70a012f7d417beb230db8965:/code/main.py diff --git a/code/main.py b/code/main.py index 3fe04d5..3b43859 100755 --- a/code/main.py +++ b/code/main.py @@ -11,6 +11,7 @@ import sha import simplejson import sys import time +import urllib from StringIO import StringIO def revertStandardError(): @@ -39,6 +40,7 @@ from Cheetah.Template import Template import sipb_xen_database from sipb_xen_database import Machine, CDROM, ctx, connect, MachineAccess, Type, Autoinstall import validation +import cache_acls from webcommon import InvalidInput, CodeError, g import controls @@ -57,12 +59,15 @@ class Checkpoint: checkpoint = Checkpoint() +def jquote(string): + return "'" + string.replace('\\', '\\\\').replace("'", "\\'").replace('\n', '\\n') + "'" def helppopup(subj): """Return HTML code for a (?) link to a specified help topic""" - return ('(?)') + return ('(?)') def makeErrorPre(old, addition): if addition is None: @@ -394,16 +399,21 @@ def modifyDict(user, fields): disk.size = disksize ctx.current.save(disk) - if owner is not None: + update_acl = False + if owner is not None and owner != machine.owner: machine.owner = owner + update_acl = True if name is not None: machine.name = name - if admin is not None: + if admin is not None and admin != machine.administrator: machine.administrator = admin + update_acl = True if contact is not None: machine.contact = contact ctx.current.save(machine) + if update_acl: + cache_acls.refreshMachine(machine) transaction.commit() except: transaction.rollback()