mirror of
https://gitflic.ru/project/alt-gnome/karkas.git
synced 2025-03-14 22:33:46 +03:00
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
from ..database.api import get_user_role
|
||
from ..config.config import get_config
|
||
|
||
yaml_load = get_config()
|
||
class Roles:
|
||
user = "USER"
|
||
moderator = "MODERATOR"
|
||
admin = "ADMIN"
|
||
bot = "BOT"
|
||
__roles = yaml_load["ROLES"]
|
||
|
||
def __init__(self):
|
||
self.user_role_id = self.__roles[self.user]
|
||
self.moderator_role_id = self.__roles[self.moderator]
|
||
self.admin_role_id = self.__roles[self.admin]
|
||
self.bot_role_id = self.__roles[self.bot]
|
||
|
||
async def check_admin_permission(self, user_id):
|
||
match get_user_role(user_id):
|
||
case self.admin_role_id:
|
||
return True
|
||
case _:
|
||
return False
|
||
|
||
async def check_moderator_permission(self, user_id):
|
||
match get_user_role(user_id):
|
||
case self.moderator_role_id:
|
||
return True
|
||
case _:
|
||
return False
|
||
|
||
async def get_role_name(self, role_id):
|
||
match role_id:
|
||
case self.admin_role_id:
|
||
return self.admin
|
||
case self.moderator_role_id:
|
||
return self.moderator
|
||
case self.user_role_id:
|
||
return self.user
|
||
case self.bot_role_id:
|
||
return self.bot
|
||
case _:
|
||
raise ValueError(f"Нет роли с id={role_id}")
|
||
|
||
async def get_user_permission(self, user_id):
|
||
match get_user_role(user_id):
|
||
case self.admin_role_id:
|
||
return self.admin
|
||
case self.moderator_role_id:
|
||
return self.moderator
|
||
case self.user_role_id:
|
||
return self.user
|
||
case self.bot_role_id:
|
||
return self.bot
|
||
case _:
|
||
return None
|