54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
|
|
PERM_USERS = "users"
|
|
PERM_KEYS = "keys"
|
|
PERM_TARIFFS = "tariffs"
|
|
PERM_CLUSTERS = "clusters"
|
|
PERM_BROADCASTING = "broadcasting"
|
|
PERM_COUPONS = "coupons"
|
|
PERM_GIFTS = "gifts"
|
|
PERM_STATS = "stats"
|
|
PERM_ADS = "ads"
|
|
PERM_MODULES = "modules"
|
|
PERM_SETTINGS = "settings"
|
|
PERM_MANAGEMENT = "management"
|
|
PERM_ADMINS = "admins"
|
|
PERM_EMOJI = "emoji"
|
|
|
|
|
|
PERMISSION_LABELS: dict[str, str] = {
|
|
PERM_USERS: "👤 Пользователи",
|
|
PERM_KEYS: "🔑 Подписки",
|
|
PERM_TARIFFS: "💸 Тарифы",
|
|
PERM_CLUSTERS: "🖥️ Серверы",
|
|
PERM_BROADCASTING: "📢 Рассылки",
|
|
PERM_COUPONS: "🎟️ Купоны",
|
|
PERM_GIFTS: "🎁 Подарки",
|
|
PERM_STATS: "📊 Статистика",
|
|
PERM_ADS: "📈 UTM / Аналитика",
|
|
PERM_MODULES: "🧩 Модули",
|
|
PERM_SETTINGS: "⚙️ Настройки",
|
|
PERM_MANAGEMENT: "🤖 Управление ботом",
|
|
PERM_ADMINS: "👑 Управление админами",
|
|
PERM_EMOJI: "😀 Эмоджи",
|
|
}
|
|
|
|
ALL_PERMISSIONS: tuple[str, ...] = tuple(PERMISSION_LABELS.keys())
|
|
|
|
|
|
def normalize_permissions(raw) -> list[str]:
|
|
if not raw:
|
|
return []
|
|
if isinstance(raw, str):
|
|
raw = [raw]
|
|
seen: set[str] = set()
|
|
result: list[str] = []
|
|
for item in raw:
|
|
if not isinstance(item, str):
|
|
continue
|
|
if item in PERMISSION_LABELS and item not in seen:
|
|
seen.add(item)
|
|
result.append(item)
|
|
return result
|