diff --git a/gns3server/api/routes/controller/projects.py b/gns3server/api/routes/controller/projects.py index 757faf6f..56ea3dc0 100644 --- a/gns3server/api/routes/controller/projects.py +++ b/gns3server/api/routes/controller/projects.py @@ -111,7 +111,8 @@ async def create_project( controller = Controller.instance() project = await controller.add_project(**jsonable_encoder(project_data, exclude_unset=True)) - await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/projects/{project.id}/*") + if not current_user.is_superadmin: + await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/projects/{project.id}/*") return project.asdict() @@ -392,7 +393,8 @@ async def duplicate_project( new_project = await project.duplicate( name=project_data.name, location=location, reset_mac_addresses=reset_mac_addresses ) - await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/projects/{new_project.id}/*") + if not current_user.is_superadmin: + await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/projects/{new_project.id}/*") return new_project.asdict() diff --git a/gns3server/api/routes/controller/templates.py b/gns3server/api/routes/controller/templates.py index 4f1914b5..8a47b8c4 100644 --- a/gns3server/api/routes/controller/templates.py +++ b/gns3server/api/routes/controller/templates.py @@ -25,7 +25,7 @@ import logging log = logging.getLogger(__name__) -from fastapi import APIRouter, Request, Response, HTTPException, Depends, Response, status +from fastapi import APIRouter, Request, HTTPException, Depends, Response, status from typing import List from uuid import UUID @@ -55,7 +55,8 @@ async def create_template( template = await TemplatesService(templates_repo).create_template(template_create) template_id = template.get("template_id") - await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/templates/{template_id}/*") + if not current_user.is_superadmin: + await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/templates/{template_id}/*") return template @@ -150,5 +151,6 @@ async def duplicate_template( """ template = await TemplatesService(templates_repo).duplicate_template(template_id) - await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/templates/{template_id}/*") + if not current_user.is_superadmin: + await rbac_repo.add_permission_to_user_with_path(current_user.user_id, f"/templates/{template_id}/*") return template