mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-29 13:30:12 +03:00
Implement the correct three-step permission check logic: - Step 1: ACE check - basic access permission (get projects user has ACE for) - Step 2: Filter ace_projects by created_by - user's own projects (project sharing only through resource pools) - Step 3: Resource pool projects (projects shared through resource pools) This fixes the design flaw where: - ACE check could bypass user isolation with broad ACE configurations - seen_project_ids mechanism prevented proper layered checking - Project sharing was confused with direct ACE configuration The new logic ensures: - User isolation works even with broad ACE (path='/', propagate=True) - Project sharing is only available through resource pools (clear design) - Proper layered checking without seen blocking mechanism