Права доступа



Ролевое управление доступом - разработка политики выборочного контроля доступа, в то время как объекты систем разрешений группируются в зависимости от их конкретного применения, формируется роль.

Формирование ролей предназначено для определения понятных для пользователей правил контроля доступа. Ролевое управление доступом позволяет гибко, динамически изменятся во время работы систем контроля доступа.

Разрешение - это наименьшая единица прав, которую можете иметь пользователь. Вы можете проверить, имеет ли пользователь разрешение с указанным именем.

Пользователь

Обычно пользователям не назначаются разрешения в приложении ORCHID (Хотя такая возможность имеется), а скорее роли. Роль, связанная с набором разрешений, а не с отдельным пользователем.

Эта концепция очень проста. Как правило, вы управляете несколькими дюжинами разрешений в типичном бизнесе процессе. Вы также можете иметь, скажем, от 10 до 100 пользователей. Хотя эти пользователи не полностью отличные друг от друга, вы можете разделить их на логические группы в соответствии с тем, что они делают с программой. Эти группы называются ролями.

Если вам нужно было управлять пользователями напрямую, назначив им разрешения, это было бы утомительным и ошибочным, из-за большого количества пользователей и разрешений.

  • Вы можете группировать одну, две или больше разрешений в роли.
  • Пользователю назначается одна или несколько ролей.
  • Набор разрешений, которыми владеет пользователь, вычисляется как объединение разрешений от каждой роли пользователя.

У пользователя есть несколько вариантов управления ролями:

// Проверяем, имеет ли пользователь права
// Проверка осуществляется как для пользователя, так и для его роли
Auth:user()->hasAccess($string);

// Получить все роли пользователя
Auth::user()->getRoles();

// Проверить имеет ли пользователь роль
Auth::user()->inRole($role)

// Добавить к пользователю роль
Auth::user()->addRole($role)

Роли

Роли также имеют процедуры для:

// Возвращает всех пользователей с этой ролью
$role->getUsers();

Создание администратора

Чтобы создать пользователя с максимальным (в момент создания) правами выполните следующую команду:

php artisan orchid:admin nickname email@email.com secretpassword

Добавление собственных разрешений

Вы можете определять ваши собственные разрешения в приложениях. Используя их, вы явно реализуете доступ к определённым функциям.

Пример добавления собственных разрешения с использованием поставщика:

use Illuminate\Support\ServiceProvider;
use Orchid\Platform\Dashboard;

class PermissionServiceProvider extends ServiceProvider
{
    /**
     * @param Dashboard $dashboard
     */
    public function boot(Dashboard $dashboard)
    {
        $dashboard->registerPermissions(
            [
                'modules' => [
                    [
                        'slug'        => 'Analytics',
                        'description' => 'Description',
                    ],
                ],
            ]);
    }
}