Проверка в коде, является ли у пользователя определенная роль

Проверка в коде, является ли у пользователя определенная роль

от Андрей Костюченко -
Количество ответов: 2

Нужно в php коде подправить кой какие вещи.

То с чем разобрался, если нужно проверить является ли пользователь от которого выполняются команды администратором, то можно использовать функцию is_siteadmin.

Но задача состоит в проверке является ли пользователь от которого выполняются команды менеджером или например имеет ли определенную другую роль.

Подскажите возможные варианты решения.

В ответ на Андрей Костюченко

Re: Проверка в коде, является ли у пользователя определенная роль

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Андрей, в moodle не принято проверять назначение конкретной роли - ролей можно насоздавать много похожих и тогда будет проблема, проверять в коде на все возможные комбинации ролей. Проверяется обычно наличие конкретного права (а набор прав и составляет роль). Для этого используются функции require_capability и has_capability.

Права нужно проверять в определенном контексте, так как в разных местах (например в разных курсах) и пользователей будут разные роли.

Сами права определяются каждым модулем системы отдельно в файле db/access.php. Если вы пишите модуль и обновили этот файл, то нужно увеличить версию в файле version.php, тогда система запустит обновление и перезагрузит определения прав из этого файла.