--- /dev/null
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AdmGetSitePersons(Method):
+ """
+ Deprecated. See GetSites.
+
+ Return a list of person_ids for the site specified.
+
+ PIs may only retrieve the person_ids of accounts at their
+ site. Admins may retrieve the person_ids of accounts at any site.
+ """
+
+ status = "deprecated"
+
+ roles = ['admin', 'pi']
+
+ accepts = [
+ Auth(),
+ Mixed(Site.fields['site_id'],
+ Site.fields['login_base'])
+ ]
+
+ returns = Site.fields['person_ids']
+
+ def call(self, auth, site_id_or_login_base):
+ # Authenticated function
+ assert self.caller is not None
+
+ # Get site information
+ sites = Sites(self.api, [site_id_or_login_base])
+ if not sites:
+ raise PLCInvalidArgument, "No such site"
+
+ site = sites[0]
+
+ if 'admin' not in self.caller['roles']:
+ if site['site_id'] not in self.caller['site_ids']:
+ raise PLCPermissionDenied, "Not allowed to view accounts at that site"
+
+ return site['person_ids']