Skip to content

♻️ refactor(OwnershipChecker): Vague 2 SOLID — centralisation ownership, suppression 5 checks manuels#138

Merged
ronan-develop merged 2 commits intomainfrom
refactor/OwnershipChecker
Mar 16, 2026
Merged

♻️ refactor(OwnershipChecker): Vague 2 SOLID — centralisation ownership, suppression 5 checks manuels#138
ronan-develop merged 2 commits intomainfrom
refactor/OwnershipChecker

Conversation

@ronan-develop
Copy link
Owner

🎯 Objectif

Vague 2 — ticket qw-auth-checker :
Éliminer les 5 duplications getOwner()->getId() === $user->getId() en créant OwnershipChecker.

📋 Changements

Nouveau service src/Security/OwnershipChecker.php

  • isOwner(Folder|Album|Share $resource): bool — vérifie sans lever d'exception
  • denyUnlessOwner(Folder|Album|Share $resource): void — 403 si non-owner
  • Utilise AuthenticationResolver en interne (pas de passage explicite de User)
  • Logging structuré des tentatives refusées (12-Factor XI)

Consommateurs refactorés

Fichier Checks remplacés
FolderProcessor::handlePatch 1 ownership + 1 parent ownership
FolderProcessor::handleDelete 1 ownership
AlbumProcessor::handlePatch 1 ownership
AlbumProcessor::handleDelete 1 ownership
ShareProcessor::getShareAsOwner 1 ownership

Total : 5 checks manuels → 0

✅ Tests

287 tests, 605 assertions — tous passants

🔗 Référence

Plan : .github/solid.md — Vague 2 (qw-auth-checker)

@ronan-develop ronan-develop merged commit b148de8 into main Mar 16, 2026
3 checks passed
@ronan-develop ronan-develop deleted the refactor/OwnershipChecker branch March 16, 2026 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant