37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from aiogram import Dispatcher, F
|
|
from aiogram.types import Message
|
|
|
|
from keyboard import get_locks_keyboard, get_contact_keyboard
|
|
from auth import authorize_user, normalize_phone
|
|
from config import config
|
|
|
|
|
|
def register_contact_handler(dp: Dispatcher):
|
|
@dp.message(F.contact)
|
|
async def contact_handler(msg: Message):
|
|
user_id = msg.from_user.id
|
|
|
|
if msg.contact is None:
|
|
await msg.answer("Ошибка: номер телефона не получен")
|
|
return
|
|
|
|
phone = normalize_phone(msg.contact.phone_number)
|
|
|
|
if not authorize_user(user_id, phone):
|
|
await msg.answer("Доступ запрещен, номер не идентифицирован")
|
|
return
|
|
|
|
user_conf = config.get("users", {}).get(phone)
|
|
print(f"***user_conf для {phone}: {user_conf}***")
|
|
if not user_conf:
|
|
await msg.answer("Пользователь не опознан")
|
|
return
|
|
|
|
allowed_locks = user_conf.get("lock_id", [])
|
|
print(f"***allowed_locks = {allowed_locks}***")
|
|
reply_markup = get_locks_keyboard(allowed_locks)
|
|
|
|
await msg.answer(
|
|
"Номер подтвержден. Выберите дверь для открытия", reply_markup=reply_markup
|
|
)
|