Files
duty-teller/duty_teller/handlers/__init__.py
Nikolay Tatarinov 4824450088
All checks were successful
CI / lint-and-test (push) Successful in 22s
feat: implement role-based access control for miniapp
- Introduced a new roles table in the database to manage user roles ('user' and 'admin') for access control.
- Updated the user model to include a foreign key reference to the roles table, allowing for role assignment.
- Enhanced command handlers to support the `/set_role` command for admins to assign roles to users.
- Refactored access control logic to utilize role checks instead of username/phone allowlists, improving security and maintainability.
- Updated documentation to reflect changes in access control mechanisms and role management.
- Added unit tests to ensure correct functionality of role assignment and access checks.
2026-02-20 23:58:54 +03:00

25 lines
1012 B
Python

"""Expose a single register_handlers(app) that registers all handlers."""
from telegram.ext import Application
from . import commands, errors, group_duty_pin, import_duty_schedule
def register_handlers(app: Application) -> None:
"""Register all Telegram handlers (commands, import, group pin, error handler) on the application.
Args:
app: python-telegram-bot Application instance.
"""
app.add_handler(commands.start_handler)
app.add_handler(commands.help_handler)
app.add_handler(commands.set_phone_handler)
app.add_handler(commands.calendar_link_handler)
app.add_handler(commands.set_role_handler)
app.add_handler(import_duty_schedule.import_duty_schedule_handler)
app.add_handler(import_duty_schedule.handover_time_handler)
app.add_handler(import_duty_schedule.duty_schedule_document_handler)
app.add_handler(group_duty_pin.group_duty_pin_handler)
app.add_handler(group_duty_pin.pin_duty_handler)
app.add_error_handler(errors.error_handler)