Skip to content

Commit 0873863

Browse files
committed
fix(casino): Обработка блокировки казино для пользователя
1 parent 5369437 commit 0873863

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

tgbot/filters/group_casino.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from aiogram.types import Message
66
from stp_database import Employee, MainRequestsRepo
77

8+
from tgbot.misc.helpers import format_fullname
9+
810

911
class 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

Comments
 (0)