- pis = self.lookup_users(person_ids, "pi")
- operators = self.lookup_users(person_ids, "tech")
- owners = self.lookup_users(person_ids, "admin")
- geni_info['pi'] = pis
- geni_info['operator'] = operators
- geni_info['owner'] = owners
+ persons = table.find({'type': 'user', 'pointer': person_ids})
+ persons_dict = {}
+ for person in persons:
+ persons_dict[person['pointer']] = person
+ pl_persons = self.plshell.GetPersons(self.plauth, person_ids, ['person_id', 'roles'])
+ pis, techs, admins = [], [], []
+ for person in pl_persons:
+ pointer = person['person_id']
+
+ if pointer not in persons_dict:
+ # this means there is not sfa record for this user
+ continue
+ hrn = persons_dict[pointer]['hrn']
+ if 'pi' in person['roles']:
+ pis.append(hrn)
+ if 'tech' in person['roles']:
+ techs.append(hrn)
+ if 'admin' in person['roles']:
+ admins.append(hrn)
+
+ geni_info['PI'] = pis
+ geni_info['operator'] = techs
+ geni_info['owner'] = admins