Ограниченный доступ к командам
Работа с набором привилегий
PRTelegram бот позволяет обрабатывать команды в зависимости от привилегий пользователей.
Для начала создадим перечисление UserPrivilege, которое будет отмечено атрибутом [Flags]. Для тех кто не знаком, что за атрибут Flags, посмотрите статью по этой ссылке.
/// <summary>
/// Привилегии пользователей
/// </summary>
[Flags]
public enum UserPrivilege
{
[Description("Гость")]
Guest = 1,
[Description("Зарегистрированный")]
Registered = 2,
[Description("Администратор")]
Admin = 4,
[Description("VIP")]
VIP = 8,
[Description("Модератор")]
Moderator = 16,
}Создадим метод который хотим ограничить для выполнения определенных пользователей
Для проверки привилегий используется атрибут Access, который принимает в себя int значение. Это сделано для того чтобы можно было создавать свои перечисления со своим набором привилегий. Принцип работы, закидываем привилегии в виде флагов и преобразуем в int, а потом обратно из int в флаги.
Так же для примера создадим метод расширения заглушку:
После создания нового экземпляра класса PRBot мы должны подписаться на события проверки привилегий.
Результаты работы:


Last updated