56 lines
1.8 KiB
Python
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,
|
|
}
|