diff --git a/main.py b/main.py index cfb1587..6a1374e 100644 --- a/main.py +++ b/main.py @@ -61,7 +61,15 @@ class Token(Base): def auth(func): async def wrapper(message): - if message["from"]["id"] not in ALLOWED_USERS: + users_list: Allowed_user = ( + session.query(Allowed_user).order_by(Allowed_user.id).all() + ) + + finded_user: Allowed_user = next( + (u for u in users_list if u.user_id == message["from"]["id"]), None + ) + + if not finded_user: return # await message.reply("Access Denied", reply=False) return await func(message) @@ -151,7 +159,8 @@ async def add_me(message: types.Message): """Добавление юзера в чат. Когда бот получает токен, он проверяет его на валидность (есть ли - такой вообще, не истек ли) и высылает разовую ссылку на вступление. + такой вообще, не истек ли) и высылает разовую ссылку на вступление + в группу. """ user_token = message.text[8:].strip() @@ -162,9 +171,14 @@ async def add_me(message: types.Message): if finded_token.expired(): print("Пизда токену") + # если с токеном все впорядке, то добавляем юзера в базу if finded_token and not finded_token.expired(): + new_user: Allowed_user = Allowed_user( + user_id=message["from"]["id"], date_add=datetime.now() + ) + session.add(new_user) + session.commit() - ALLOWED_USERS.append(message["from"]["id"]) # генерируем ссылку, истечет через 5 минут, может вступить 1 человек link = await bot.create_chat_invite_link( chat_id=CHAT_ID, expire_date=timedelta(minutes=5), member_limit=1