modified: .gitignore
This commit is contained in:
29
web/roles.py
Normal file
29
web/roles.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Legacy values (admin/member) are kept for backward compatibility.
|
||||
GROUP_ROLE_LABELS = {
|
||||
"group_owner": "Group Owner",
|
||||
"group_admin": "Group Admin",
|
||||
"moderator": "Moderator",
|
||||
"viewer": "Viewer",
|
||||
"auditor": "Auditor",
|
||||
"admin": "Admin",
|
||||
"member": "Member",
|
||||
}
|
||||
|
||||
GROUP_ROLE_OPTIONS = [
|
||||
("group_owner", GROUP_ROLE_LABELS["group_owner"]),
|
||||
("group_admin", GROUP_ROLE_LABELS["group_admin"]),
|
||||
("moderator", GROUP_ROLE_LABELS["moderator"]),
|
||||
("viewer", GROUP_ROLE_LABELS["viewer"]),
|
||||
("auditor", GROUP_ROLE_LABELS["auditor"]),
|
||||
]
|
||||
|
||||
GROUP_ROLE_SET = {role for role, _ in GROUP_ROLE_OPTIONS} | {"admin", "member"}
|
||||
GROUP_MANAGEMENT_ROLES = {"group_owner", "group_admin", "admin"}
|
||||
|
||||
|
||||
def can_manage_group(role: str | None) -> bool:
|
||||
return role in GROUP_MANAGEMENT_ROLES
|
||||
|
||||
|
||||
def role_label(role: str | None) -> str:
|
||||
return GROUP_ROLE_LABELS.get(role or "", "Unknown")
|
||||
Reference in New Issue
Block a user