fix: solución de bloqueos y estandarización de permisos

This commit is contained in:
2026-04-27 10:47:30 -05:00
parent fa3cbb4d0a
commit 5c2a84e95d
312 changed files with 13889 additions and 7911 deletions

View File

@@ -1,7 +1,7 @@
from typing import Any, Dict
from core.database import get_core_db
from core.security import get_current_user, has_role
from core.security import get_current_user
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy import or_
from sqlalchemy.orm import Session
@@ -21,6 +21,8 @@ async def list_identifiers(
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
):
from core.security import validate_access_to_resource as validate_perm
validate_perm(current_user, "cat_identifiers", "view")
skip = (page - 1) * page_size
query = db.query(IdentifierCatalog)
@@ -53,6 +55,8 @@ async def get_identifier(
db: Session = Depends(get_core_db),
current_user: dict = Depends(get_current_user),
):
from core.security import validate_access_to_resource as validate_perm
validate_perm(current_user, "cat_identifiers", "view")
obj = db.query(IdentifierCatalog).filter(IdentifierCatalog.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")
@@ -63,8 +67,10 @@ async def get_identifier(
async def create_identifier(
data: IdentifierDTO,
db: Session = Depends(get_core_db),
current_user: dict = Depends(has_role("admin")),
current_user: dict = Depends(get_current_user),
):
from core.security import validate_access_to_resource as validate_perm
validate_perm(current_user, "cat_identifiers", "create")
# Check if already exists
existing = db.query(IdentifierCatalog).filter(IdentifierCatalog.key == data.key).first()
if existing:
@@ -82,8 +88,10 @@ async def update_identifier(
key: str,
data: IdentifierDTO,
db: Session = Depends(get_core_db),
current_user: dict = Depends(has_role("admin")),
current_user: dict = Depends(get_current_user),
):
from core.security import validate_access_to_resource as validate_perm
validate_perm(current_user, "cat_identifiers", "edit")
obj = db.query(IdentifierCatalog).filter(IdentifierCatalog.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")
@@ -98,8 +106,10 @@ async def update_identifier(
async def delete_identifier(
key: str,
db: Session = Depends(get_core_db),
current_user: dict = Depends(has_role("admin")),
current_user: dict = Depends(get_current_user),
):
from core.security import validate_access_to_resource as validate_perm
validate_perm(current_user, "cat_identifiers", "delete")
obj = db.query(IdentifierCatalog).filter(IdentifierCatalog.key == key).first()
if not obj:
raise HTTPException(status_code=404, detail="Not found")