From 07c8328ae960412c81ed60ddc49cb6800c530135 Mon Sep 17 00:00:00 2001 From: Anil-Kumar Vengalil Date: Tue, 15 Dec 2009 12:30:58 +0000 Subject: [PATCH] again getting away with caller_cred and passing just the hrn of the initial caller --- sfa/methods/list.py | 2 +- sfa/methods/register.py | 8 ++++---- sfa/methods/remove.py | 11 ++++++----- sfa/methods/remove_peer_object.py | 8 ++++---- sfa/methods/resolve.py | 2 +- sfa/methods/update.py | 8 ++++---- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/sfa/methods/list.py b/sfa/methods/list.py index 90a7b8b6..a1397040 100644 --- a/sfa/methods/list.py +++ b/sfa/methods/list.py @@ -58,7 +58,7 @@ class list(Method): credential = self.api.getCredential() try: request_hash=None - record_list = registries[registry_hrn].list(credential, hrn, request_hash, caller_cred) + record_list = registries[registry_hrn].list(credential, hrn, request_hash, origin_hrn) records = [GeniRecord(dict=record).as_dict() for record in record_list] except: arg_list = [credential, hrn] diff --git a/sfa/methods/register.py b/sfa/methods/register.py index 68b38410..ac05303b 100644 --- a/sfa/methods/register.py +++ b/sfa/methods/register.py @@ -38,7 +38,7 @@ class register(Method): returns = Parameter(int, "String representation of gid object") - def call(self, cred, record_dict, request_hash=None, caller_cred=None): + def call(self, cred, record_dict, request_hash=None, origin_hrn=None): # This cred will be an authority cred, not a user, so we cant use it to # authenticate the caller's request_hash. Let just get the caller's gid # from the cred and authenticate using that @@ -46,11 +46,11 @@ class register(Method): client_gid_str = client_gid.save_to_string(save_parents=True) self.api.auth.authenticateGid(client_gid_str, [cred], request_hash) self.api.auth.check(cred, "register") - if caller_cred==None: - caller_cred=cred + if origin_hrn==None: + origin_hrn=Credential(string=cred).get_gid_caller().get_hrn() #log the call - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, Credential(string=caller_cred).get_gid_caller().get_hrn(), None, self.name)) + self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, None, self.name)) record = GeniRecord(dict = record_dict) record['authority'] = get_authority(record['hrn']) type = record['type'] diff --git a/sfa/methods/remove.py b/sfa/methods/remove.py index fb8f820d..3d7d5d3d 100644 --- a/sfa/methods/remove.py +++ b/sfa/methods/remove.py @@ -35,12 +35,12 @@ class remove(Method): returns = Parameter(int, "1 if successful") - def call(self, cred, type, hrn, request_hash=None, caller_cred=None): + def call(self, cred, type, hrn, request_hash=None, origin_hrn=None): - if caller_cred==None: - caller_cred=cred + if origin_hrn==None: + origin_hrn=Credential(string=cred).get_gid_caller().get_hrn() #log the call - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, Credential(string=caller_cred).get_gid_caller().get_hrn(), hrn, self.name)) + self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name)) # This cred will be an authority cred, not a user, so we cant use it to # authenticate the caller's request_hash. Let just get the caller's gid # from the cred and authenticate using that @@ -68,7 +68,8 @@ class remove(Method): for registry in registries: if registry not in [self.api.hrn]: try: - result=registries[registry].remove_peer_object(credential, record) + request_hash=None + result=registries[registry].remove_peer_object(credential, record, request_hash, origin_hrn) except: pass if type == "user": diff --git a/sfa/methods/remove_peer_object.py b/sfa/methods/remove_peer_object.py index 51fb658f..81a9e532 100644 --- a/sfa/methods/remove_peer_object.py +++ b/sfa/methods/remove_peer_object.py @@ -33,11 +33,11 @@ class remove_peer_object(Method): returns = Parameter(int, "1 if successful") - def call(self, cred, record, request_hash=None, caller_cred=None): - if caller_cred==None: - caller_cred=cred + def call(self, cred, record, request_hash=None, origin_hrn=None): + if origin_hrn==None: + origin_hrn=Credential(string=cred).get_gid_caller().get_hrn() #log the call - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, Credential(string=caller_cred).get_gid_caller().get_hrn(), record['hrn'], self.name)) + self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, record['hrn'], self.name)) self.api.auth.authenticateCred(cred, [cred], request_hash) self.api.auth.check(cred, "remove") diff --git a/sfa/methods/resolve.py b/sfa/methods/resolve.py index cdf148fa..4a5f560e 100644 --- a/sfa/methods/resolve.py +++ b/sfa/methods/resolve.py @@ -66,7 +66,7 @@ class resolve(Method): except: arg_list = [credential, hrn] request_hash=self.api.key.compute_hash(arg_list) - records = registries[registry_hrn].resolve(credential, hrn, request_hash, caller_cred) + records = registries[registry_hrn].resolve(credential, hrn, request_hash, origin_hrn) good_records = [GeniRecord(dict=record).as_dict() for record in records] if good_records: diff --git a/sfa/methods/update.py b/sfa/methods/update.py index 4076e977..01ef6399 100644 --- a/sfa/methods/update.py +++ b/sfa/methods/update.py @@ -36,12 +36,12 @@ class update(Method): returns = Parameter(int, "1 if successful") - def call(self, cred, record_dict, request_hash=None, caller_cred=None): - if caller_cred==None: - caller_cred=cred + def call(self, cred, record_dict, request_hash=None, origin_hrn=None): + if origin_hrn==None: + origin_hrn=Credential(string=cred).get_gid_caller().get_hrn() #log the call - self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, Credential(string=caller_cred).get_gid_caller().get_hrn(), None, self.name)) + self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, None, self.name)) # This cred might be an authority cred, not a user, so we cant use it to # authenticate the caller's request_hash. Let just get the caller's gid # from the cred and authenticate using that -- 2.43.0