From: Tony Mack Date: Tue, 21 Oct 2008 19:42:38 +0000 (+0000) Subject: "support user created slice conf files" X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f24fe65d47e3d3c171d3115f6300256783ce4ca5;p=plcapi.git "support user created slice conf files" --- diff --git a/PLC/Methods/GetConfFiles.py b/PLC/Methods/GetConfFiles.py index 89d5250d..2c7c18a4 100644 --- a/PLC/Methods/GetConfFiles.py +++ b/PLC/Methods/GetConfFiles.py @@ -15,7 +15,7 @@ class GetConfFiles(Method): details will be returned. """ - roles = ['admin', 'node'] + roles = ['admin', 'node', 'pi', 'user'] accepts = [ Auth(), @@ -28,4 +28,19 @@ class GetConfFiles(Method): 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