details will be returned.
"""
- roles = ['admin', 'node']
+ roles = ['admin', 'node', 'pi', 'user']
accepts = [
Auth(),
def call(self, auth, conf_file_filter = None, return_fields = None):
- return ConfFiles(self.api, conf_file_filter, return_fields)
+ if 'node' in self.caller['roles']:
+ return ConfFiles(self.api, conf_file_filter, return_fields)
+ else:
+ if isinstance(self.caller, Person) and \
+ 'admin' not in self.caller['roles']:
+ if conf_file_filter is None:
+ conf_file_filter = {'site_id': self.caller['site_ids']}
+
+ conf_files = ConfFiles(self.api, conf_file_filter, return_fields)
+
+ # Filter out accounts that are not viewable
+ if isinstance(self.caller, ConfFiles) and \
+ 'admin' not in self.caller['roles']:
+ conf_files = filter(lambda id: id in self.caller['site_ids'] , conf_files)
+
+ return conf_files