diff --git a/schemas/qwc-admin-gui.json b/schemas/qwc-admin-gui.json index 1e48522..176e5f3 100644 --- a/schemas/qwc-admin-gui.json +++ b/schemas/qwc-admin-gui.json @@ -139,6 +139,14 @@ "config_generator_service_url", "totp_enabled" ] + }, + "resource_blacklist": { + "description": "List of resource types to blacklist.", + "type": "array", + "items": { + "type": "string" + } + } } }, "required": [ diff --git a/src/controllers/permissions_controller.py b/src/controllers/permissions_controller.py index af05176..1fa94f2 100644 --- a/src/controllers/permissions_controller.py +++ b/src/controllers/permissions_controller.py @@ -183,7 +183,9 @@ def index(self): # query resource types resource_types = OrderedDict() + blacklist = self.handler().config().get("resource_blacklist", []) query = session.query(self.ResourceType) \ + .filter(self.ResourceType.name.notin_(blacklist)) \ .order_by(self.ResourceType.list_order, self.ResourceType.name) for resource_type in query.all(): resource_types[resource_type.name] = resource_type.description diff --git a/src/controllers/resources_controller.py b/src/controllers/resources_controller.py index e695907..d99c423 100644 --- a/src/controllers/resources_controller.py +++ b/src/controllers/resources_controller.py @@ -209,7 +209,9 @@ def index(self): # query resource types resource_types = OrderedDict() + blacklist = self.handler().config().get("resource_blacklist", []) query = session.query(self.ResourceType) \ + .filter(self.ResourceType.name.notin_(blacklist)) \ .order_by(self.ResourceType.list_order, self.ResourceType.name) for resource_type in query.all(): resource_types[resource_type.name] = resource_type.description @@ -341,7 +343,9 @@ def create_form(self, resource=None, edit_form=False): with self.session() as session: # query resource types + blacklist = self.handler().config().get("resource_blacklist", []) query = session.query(self.ResourceType) \ + .filter(self.ResourceType.name.notin_(blacklist)) \ .order_by(self.ResourceType.list_order, self.ResourceType.name) resource_types = query.all()