Роли и разрешения
Last updated
Last updated
Voyager поставляется с ролями и разрешениями из коробки. Каждый Пользователь имеет Роль, который имеет набор из Разрешений.
Внутри панели управлении можно выбрать Добавить, Редактировать или удалить текущие роли. Кроме того, при нажатии на кнопку редактирования определенной роли вы можете указать права BREAD.
Новое в версии 1.0. Мы изменили систему авторизации Voyager на подробнее в соответствии с Laravel! Это означает, что вы можете проверять разрешения следующими способами:
Вне поля есть некоторые разрешения, которые вы можете использовать по умолчанию:
browse_admin
: Может ли пользователь просматривать админ-панель Voyager или нет.
browse_database
: Может ли пользователь просматривать раздел базы данных в меню Voyager или нет.
browse_bread
: Может ли пользователь просматривать раздел меню Voyager BREAD или нет.
browse_media
: Может ли Пользователь просматривать медиа-раздел Voyager или нет.
browse_menu
: Может ли пользователь просматривать раздел меню Voyager или нет.
browse_settings
: Может ли пользователь просматривать раздел настроек Voyager или нет.
read_settings
: Может ли пользователь просматривать или видеть определенный параметр.
edit_settings
: Может ли пользователь редактировать тот или иной параметр или нет.
add_settings
: Может ли пользователь добавить новую настройку или нет.
delete_settings
: Может ли пользователь удалить определенный параметр или нет.
Дополнительно вы можете Генерировать права \(Generate permissions\)
для каждого типа BREAD, который вы создаете. Это создаст права на просмотр, чтение, редактирование, добавление и удаление.
В качестве примера, допустим, мы создаем новый тип BREAD из таблицы products
. Если мы выберем опцию Generate permissions
для нашей таблицы products
, то ключами доступа будут browse_products
, read_products
, edit_products
, add_products
и delete_products
.
Уведомление
Если пункт меню связан с любым типом BREAD, то он будет проверять разрешение browse
, например, для пункта меню Posts
BREAD, он будет проверять разрешение browse_posts
. Если у пользователя нет требуемого разрешения, то этот пункт меню будет скрыт.
Если вы создаете пользовательскую страницу и хотите разрешить доступ к ней только определенным пользовательским ролям, вы можете использовать разрешения.
Это работает, только если ваш slug идет сразу после /admin/
. Таким образом, для пользовательской страницы формы /admin/sub/foo
пункт меню не будет скрыт из меню.
Сначала создайте разрешение в таблице разрешений (можно использовать BREAD, например, имя модели TCG\Voyager\Models\Permission
). Столбец table_name
должен быть равен null. Колонка key
должна иметь форму browse_slug
, где slug
должен быть заменен фактическим slug Вашей пользовательской страницы. Например, чтобы ограничить доступ к вашей пользовательской странице с помощью url /admin/create_bill
, вы можете создать разрешение browse_create_bill
.
Проверьте разрешение для каждой роли, которую вы хотите предоставить доступ к сайту на admin/roles
. В приведенном выше примере вы найдете новый флажок "Browse Create Bill". Если у пользователя нет требуемого разрешения, то пункт меню, ведущий на вашу пользовательскую страницу, будет скрыт.
Вы можете создать свои собственный gate
Использовать authorize
в вашем контроллере:
Если вы это сделаете, обязательно добавьте в контроллер пользовательский guard:
Вы также можете проверить права доступа, используя синтаксис blade. Допустим, Вы хотите проверить, может ли пользователь browse_posts
, для этого мы можем использовать следующий синтаксис:
Или, возможно, вам нужно выполнить другое условие для получения разрешения. Это достаточно просто:
Не может быть проще, правда ;).