fix(rbac) : gate les listes Gitea/BookStack par projects.manage (et non ROLE_USER)
Suite à la revue de sécurité : ROLE_ADMIN était trop strict (les ressources sœurs sont en ROLE_USER) mais ROLE_USER brut est trop permissif — ces endpoints listent TOUS les dépôts/étagères visibles par le token d'intégration global, sans filtrage par utilisateur. Comme ils ne sont consommés que par le ProjectDrawer (configuration du dépôt/étagère d'un projet), on les gate sur la permission métier project-management.projects.manage. Les admins conservent l'accès via le bypass ROLE_ADMIN du PermissionVoter.
This commit is contained in:
@@ -15,7 +15,9 @@ use Symfony\Component\Serializer\Attribute\Groups;
|
||||
uriTemplate: '/bookstack/shelves',
|
||||
normalizationContext: ['groups' => ['bookstack_shelf:read']],
|
||||
provider: BookStackShelfProvider::class,
|
||||
security: "is_granted('ROLE_USER')",
|
||||
// Liste toutes les étagères visibles par le token BookStack global :
|
||||
// réservé à qui configure un projet (ProjectDrawer), pas à tout user.
|
||||
security: "is_granted('project-management.projects.manage')",
|
||||
),
|
||||
],
|
||||
)]
|
||||
|
||||
@@ -15,7 +15,9 @@ use Symfony\Component\Serializer\Attribute\Groups;
|
||||
uriTemplate: '/gitea/repositories',
|
||||
normalizationContext: ['groups' => ['gitea_repo:read']],
|
||||
provider: GiteaRepositoryProvider::class,
|
||||
security: "is_granted('ROLE_USER')",
|
||||
// Liste l'intégralité des dépôts visibles par le token Gitea global :
|
||||
// réservé à qui configure un projet (ProjectDrawer), pas à tout user.
|
||||
security: "is_granted('project-management.projects.manage')",
|
||||
),
|
||||
],
|
||||
)]
|
||||
|
||||
Reference in New Issue
Block a user