- target_rec = database.get_sliver(target_name)
- if not target_rec: raise xmlrpclib.Fault(102, 'Invalid argument: the first argument must be a sliver name.')
-
- if caller_name not in (args[0], 'root') and \
- (caller_name, method_name) not in target_rec['delegations']:
- raise xmlrpclib.Fault(108, 'Permission denied.')
+ 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.')