X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FMethods%2FGetPersons.py;h=263c66359429dd72013a5c790c489cff6a417de7;hb=19d4a01ccf66af9e00914351b3eacd5fc880f988;hp=943942098bf8d78cd3c6bb8babb8f5884a0e4ae2;hpb=7ff3079ce042525acbf00e0d4fe555e8988c128d;p=plcapi.git diff --git a/PLC/Methods/GetPersons.py b/PLC/Methods/GetPersons.py index 9439420..263c663 100644 --- a/PLC/Methods/GetPersons.py +++ b/PLC/Methods/GetPersons.py @@ -5,6 +5,7 @@ from PLC.Filter import Filter from PLC.Persons import Person, Persons from PLC.Sites import Site, Sites from PLC.Auth import Auth +from PLC.Logger import logger hidden_fields = ['password', 'verification_key', 'verification_expires'] @@ -39,16 +40,20 @@ class GetPersons(Method): returns = [return_fields] def call(self, auth, person_filter = None, return_fields = None): + + logger.info("incoming GetPersons, filter={}, return fields={}" + .format(person_filter, return_fields)) + # If we are not admin, make sure to only return viewable accounts if isinstance(self.caller, Person) and \ 'admin' not in self.caller['roles']: # Get accounts that we are able to view valid_person_ids = [self.caller['person_id']] - if 'pi' in self.caller['roles'] and self.caller['site_ids']: + if ('pi' in self.caller['roles'] or 'tech' in self.caller['roles']) \ + and self.caller['site_ids']: sites = Sites(self.api, self.caller['site_ids']) for site in sites: valid_person_ids += site['person_ids'] - if not valid_person_ids: return []