55from aiogram .types import Message
66from stp_database import Employee , MainRequestsRepo
77
8+ from tgbot .misc .helpers import format_fullname
9+
810
911class IsGroupCasinoAllowed (BaseFilter ):
1012 """Фильтр проверки доступа к казино в группе.
@@ -14,7 +16,7 @@ class IsGroupCasinoAllowed(BaseFilter):
1416 2. Разрешен ли казино в группе (is_casino_allowed=True)
1517 3. Разрешен ли доступ к казино пользователю (is_casino_allowed=True)
1618
17- При отсутствии любого из условий прерывает обработку без сообщения .
19+ При отсутствии любого из условий отправляет пользователю соответствующее сообщение об ошибке .
1820 """
1921
2022 async def __call__ (
@@ -23,7 +25,7 @@ async def __call__(
2325 """Проверяет разрешен ли доступ к казино для пользователя и группы.
2426
2527 Args:
26- message: Входящее сообщение.
28+ message: Входящее сообщение
2729 user: Экземпляр пользователя с моделью Employee
2830 stp_repo: Репозиторий операций с базой STP
2931 **kwargs: Дополнительные аргументы.
@@ -32,19 +34,33 @@ async def __call__(
3234 True если доступ разрешен.
3335
3436 Raises:
35- CancelHandler: Если доступ запрещен (без отправки сообщения).
37+ CancelHandler: Если доступ запрещен (после отправки сообщения об ошибке ).
3638 """
37- # Проверяем пользователя
38- if user is None or not user .is_casino_allowed :
39+ if user and not user .is_casino_allowed :
40+ user_head = await stp_repo .employee .get_users (fullname = user .head )
41+ head_fullname = format_fullname (user_head , True , True )
42+ await message .reply (
43+ "✋ <b>Доступ к казино запрещен</b>\n \n "
44+ f"Обратись к <b>{ head_fullname } </b> для получения доступа"
45+ )
3946 raise CancelHandler ()
4047
4148 # Проверяем группу
4249 try :
4350 group = await stp_repo .group .get_groups (message .chat .id )
44- if not group or not group .is_casino_allowed :
51+ if not group :
52+ await message .reply (
53+ "✋ <b>Группа не зарегистрирована</b>\n \n "
54+ "Обратись к администратору/владельцу группы для ее регистрации. После регистрации группы появится возможность использовать казино"
55+ )
56+ raise CancelHandler ()
57+
58+ if not group .is_casino_allowed :
59+ await message .reply ("✋ <b>Казино отключено в группе</b>" )
4560 raise CancelHandler ()
4661 except Exception :
4762 # Если ошибка при получении группы - запрещаем доступ
63+ await message .reply ("🚨 <b>Ошибка доступа к базе данных</b>" )
4864 raise CancelHandler ()
4965
5066 return True
0 commit comments