HR-ATS-Portal/backend/role/serializers.py

56 lines
1.8 KiB
Python

from role.models import PermissionTags, Permissions, Roles
def serialize_permission_tag(tag: PermissionTags) -> dict:
return {
"id": tag.id,
"tag_name": tag.tag_name,
"module": tag.module,
"action": tag.action,
"description": tag.description,
"is_active": tag.is_active,
"is_deleted": tag.is_deleted,
"created_at": tag.created_at.isoformat() if tag.created_at else None,
"updated_at": tag.updated_at.isoformat() if tag.updated_at else None,
}
def serialize_permission(
permission: Permissions,
*,
tag_names: list[str] | None = None,
) -> dict:
return {
"id": permission.id,
"name": permission.name,
"description": permission.description,
"permission_tags": list(permission.permission_tags or []),
"tag_names": list(tag_names or []),
"is_system": permission.is_system,
"is_active": permission.is_active,
"is_deleted": permission.is_deleted,
"created_at": permission.created_at.isoformat() if permission.created_at else None,
"updated_at": permission.updated_at.isoformat() if permission.updated_at else None,
}
def serialize_role(
role: Roles,
*,
bundles: list[dict] | None = None,
permissions: list[str] | None = None,
) -> dict:
return {
"id": role.id,
"role_name": role.role_name,
"description": role.description,
"permissions": list(role.permissions or []),
"bundles": list(bundles or []),
"effective_permissions": list(permissions or []),
"is_system": role.is_system,
"is_active": role.is_active,
"is_deleted": role.is_deleted,
"created_at": role.created_at.isoformat() if role.created_at else None,
"updated_at": role.updated_at.isoformat() if role.updated_at else None,
}