fix: un dossier perso n'est plus visible par les autres comptes #194
CI / lint (push) Successful in 2m57s
CI / security (push) Successful in 1m40s
CI / test (push) Successful in 4m39s
CI / build (push) Successful in 1m34s
CI / e2e (push) Successful in 17m44s

L'admin (vaults: ["*"]) voyait le home de chaque utilisateur dans sa
barre latérale : "*" ouvrait tous les vaults, home-* compris.

- backend/auth/middleware.py : check_vault_access exige un octroi
  explicite pour tout vault home-* (nouveau is_home_vault()).
- Filtres « * » en dur remplacés par check_vault_access : dashboard,
  conflits, liens retour, favoris, abonnements push.
- /api/search : search_vaults(is_allowed=…) filtre les bruts avant
  pagination (total et page restent justes).
- backend/user_home.py : _grant n'écarte plus les comptes « * » —
  l'admin reçoit son propre home-admin (auto-réparé au démarrage).
- Tests : test_user_home.py +2, assertion API inversée dans
  test_auth_api.py (admin ne voit plus home-alice).
This commit is contained in:
2026-10-10 16:42:00 -04:00
parent 10453d8dfe
commit 8662d23ec8
23 changed files with 152 additions and 39 deletions
+5
View File
@@ -12,6 +12,7 @@ import time
from datetime import datetime
from typing import Any
from backend.auth.middleware import is_home_vault
from backend.history import get_recent_opened, is_bookmarked
from backend.indexer import find_file_in_index, index
@@ -31,6 +32,10 @@ def humanize_mtime(mtime: float) -> str:
def _can_access(vault: str, user_vaults: list[str]) -> bool:
# #194 : un dossier perso ne bénéficie jamais de "*" (même règle que
# backend.auth.middleware.check_vault_access).
if is_home_vault(vault):
return vault in user_vaults
return "*" in user_vaults or vault in user_vaults