В Drupal (7) новые флажки — права пользователей добавляются через hook модуля MODULENAME_permission.
В зацепке вы формируете массив описаний прав, который возвращаете при выходе из функции. Пример:
1 2 3 4 5 6 7 8 9 |
function somecustomemodule_permission() { return array( 'admin check ingr' => array( 'title' => 'Доступ к проверке ингредиентов', 'description' => 'Даёт доступ к проверке списка ингредиентов в специальной форме сайта.', ), ); } |
После того, как вы создали в своём модуле дополнительные права (permissions), в коде вы можете использовать функцию API user_access() для проверки флажка.
1 2 3 4 |
if (user_access('admin check ingr')) { // у текущего пользователя есть указанное право // ... } |
Если требуется проверить не текущего пользователя, а какого то другого, то объект $user, нужно передать вторым параметром в user_access().
Система прав в Drupal построена на основе ролей, права выдаются не напрямую пользователям, а в соответствии с их ролями. Потому чтобы выдать permissions пользователю, надо отредактировать набор прав выданной ему роли.
/admin/people/permissions/roles