Для ограничения доступа к определенным командам в Telegram-боте можно использовать проверку роли пользователя перед выполнением команды. Ниже приведен пример кода на Python с использованием библиотеки python-telegram-bot для реализации данной функциональности:
```python
from telegram.ext import Updater, CommandHandler
from functools import wraps
# функция-декоратор для проверки роли пользователя
def restricted(func):
@wraps(func)
def wrapped(update, context, *args, **kwargs):
user_role = get_user_role(update.message.chat_id) # функция get_user_role возвращает роль пользователя из базы данных
if user_role == 'admin':
return func(update, context, *args, **kwargs)
else:
update.message.reply_text('У вас нет прав для выполнения этой команды.')
return wrapped
# обработчики команд
@restricted
def admin_command(update, context):
update.message.reply_text('Вы выполнили административную команду.')
def user_command(update, context):
update.message.reply_text('Вы выполнили пользовательскую команду.')
# инициализация бота
updater = Updater('TOKEN')
dispatcher = updater.dispatcher
# добавление обработчиков команд
dispatcher.add_handler(CommandHandler('admin', admin_command))
dispatcher.add_handler(CommandHandler('user', user_command))
# запуск бота
updater.start_polling()
updater.idle()
```
В данном примере предполагается, что у вас уже есть функция `get_user_role`, которая возвращает роль пользователя из базы данных. Функция `restricted` является декоратором, который проверяет роль пользователя перед выполнением команды. Команда 'admin' доступна только администраторам, а команда 'user' доступна всем пользователям.
Таким образом, вы можете ограничить доступ к определенным командам в Telegram-боте с использованием проверки роли пользователей перед выполнением команды.