Added admin page

This commit is contained in:
gulimabr
2025-12-01 12:39:13 -03:00
parent 74454c7b6b
commit a52a669521
13 changed files with 1430 additions and 65 deletions

View File

@@ -20,7 +20,52 @@ class UserInfo(BaseModel):
full_name: Optional[str] = None
db_user_id: Optional[int] = None # Database user ID (populated after login)
role: Optional[str] = None # User role name
role_id: Optional[int] = None # User role ID (1=admin, 2=auditor, 3=user, etc.)
role_id: Optional[int] = None # User role ID (1=editor, 2=auditor, 3=admin)
# Role schemas
ROLE_DISPLAY_NAMES = {
"editor": "Editor",
"auditor": "Auditor",
"admin": "Project Admin"
}
class RoleResponse(BaseModel):
"""Response schema for a role."""
id: int
role_name: str
display_name: str
class Config:
from_attributes = True
@classmethod
def from_role(cls, role) -> "RoleResponse":
"""Create a RoleResponse from a Role model."""
return cls(
id=role.id,
role_name=role.role_name,
display_name=ROLE_DISPLAY_NAMES.get(role.role_name, role.role_name.title())
)
class ProjectMemberResponse(BaseModel):
"""Response schema for a project member with role info."""
id: int
sub: str
role_id: int
role_name: str
role_display_name: str
created_at: Optional[datetime] = None
class Config:
from_attributes = True
class UserRoleUpdateRequest(BaseModel):
"""Request schema for updating a user's role."""
role_id: int
# Project schemas
@@ -215,6 +260,13 @@ class RelationshipTypeCreateRequest(BaseModel):
inverse_type_name: Optional[str] = None
class RelationshipTypeUpdateRequest(BaseModel):
"""Request schema for updating a relationship type."""
type_name: Optional[str] = None
type_description: Optional[str] = None
inverse_type_name: Optional[str] = None
# Requirement Link schemas
class LinkedRequirementInfo(BaseModel):
"""Brief info about a linked requirement."""