From: David E. Eisenstat Date: Fri, 23 Feb 2007 22:04:08 +0000 (+0000) Subject: Permission check special case for Emulab. X-Git-Tag: NodeManager-1.6-1~143 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=42ca42825a1a1276d6f989ace34fb29e4911e836 Permission check special case for Emulab. --- diff --git a/api.py b/api.py index 8e8794a..5c4ab4a 100644 --- a/api.py +++ b/api.py @@ -147,7 +147,7 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): target_name = args[0] target_rec = database.db.get(target_name) if not (target_rec and target_rec['type'].startswith('sliver.')): raise xmlrpclib.Fault(102, 'Invalid argument: the first argument must be a sliver name.') - if not (caller_name in (args[0], 'root') or (caller_name, method_name) in target_rec['delegations']): raise xmlrpclib.Fault(108, 'Permission denied.') + if not (caller_name in (args[0], 'root') or (caller_name, method_name) in target_rec['delegations'] or (caller_name == 'utah_elab_delegate' and target_name.startswith('utah_elab_'))): raise xmlrpclib.Fault(108, 'Permission denied.') result = method(target_rec, *args[1:]) else: result = method(*args) if result == None: result = 1