- Added functionality to normalize phone numbers for comparison, ensuring only digits are stored and checked. - Updated configuration to include optional phone number allowlists for users and admins in the environment settings. - Enhanced authentication logic to allow access based on normalized phone numbers, in addition to usernames. - Introduced new helper functions for parsing and validating phone numbers, improving code organization and maintainability. - Added unit tests to validate phone normalization and access control based on phone numbers.
25 lines
984 B
Plaintext
25 lines
984 B
Plaintext
BOT_TOKEN=your_bot_token_here
|
|
DATABASE_URL=sqlite:///data/duty_teller.db
|
|
MINI_APP_BASE_URL=
|
|
HTTP_PORT=8080
|
|
|
|
# Miniapp access: comma-separated Telegram usernames (no @). Empty = no one allowed.
|
|
ALLOWED_USERNAMES=username1,username2
|
|
ADMIN_USERNAMES=admin1,admin2
|
|
|
|
# Optional: allow by phone (user sets phone via /set_phone in bot). Comma-separated; normalized to digits for comparison.
|
|
# ALLOWED_PHONES=79001234567,79007654321
|
|
# ADMIN_PHONES=79001111111
|
|
|
|
# Dev only: set to 1 to allow calendar without Telegram initData (insecure; do not use in production).
|
|
# MINI_APP_SKIP_AUTH=1
|
|
|
|
# Optional: URL of a public ICS calendar (e.g. holidays). Days from this calendar are highlighted on the duty grid; click "i" for summary.
|
|
# EXTERNAL_CALENDAR_ICS_URL=https://example.com/holidays.ics
|
|
|
|
# Timezone for the pinned duty message in groups (e.g. Europe/Moscow).
|
|
# DUTY_DISPLAY_TZ=Europe/Moscow
|
|
|
|
# Default UI language when user language is unknown: en or ru (default: en).
|
|
# DEFAULT_LANGUAGE=en
|