|
|
|
@ -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 |
|
|
|
|