Search
Write a publication
Pull to refresh
3
0
Jekshmek @Jekshmek

Разработчик

Send message

Yii2-advanced: Гибкая настройка Yii2 RBAC (роли, разрешения, правила)

Reading time8 min
Views37K

У админа может и не быть доступа к разрешению пользователя и в пределах одной роли пользователи могут иметь разный доступ к разрешениям


Как организовать сущности Role,Permission,Rule


Роли (role): типовые роли supper_admin,admin,customer (сотрудник, менеджер),user (авторизированный пользователь),guest (не авторизированный пользователь). Роль supper_admin наследует от всех ролей разрешения благодаря этому supper_admin имеет доступ ко всем permission не зависимо от их наличия в конкретной роли но требуется пропуск во всех правилах;

Разрешения (permission): роль является прямым родителем разрешения, без наследования (кроме роли supper_admin).Другими словами, одно и тоже разрешение будет назначаться каждой нужной роли.
Правила (Rule): правила для ролей и для разрешений наследуются от BaseRole в котором присутствует проверка общих правил.

От вас потребуется закодировать админку для ролей , разрешений , разрешений пользователя.
Что там должно быть:
Админка для ролей.
Добавление, удаление, обновление разрешений.

Админка для разрешений.
Добавление, удаление.

Админка разрешения пользователя.
Тут должна быть возможность конкретному пользователю по мимо его разрешений и запрещающих разрешений назначить или снять определенное разрешение или запрещающее разрешение.По поводу запрещающих разрешений будет пояснение дальше.
Читать дальше →

Yii2-advanced: Делаем интернационализацию с источником в Redis

Reading time20 min
Views11K
В Yii2 есть возможность реализовать три варианта интернационализации:

  1. Файл с массивом, вида: ключ=>перевод (гибко)
    Help Link:

    Создадим конфигурационный файл для сборщика


    Выполним консольную команду
    php ./yii message/config @common/config/i18n.php
    //или с комментариями
    php ./yii message/config-template @common/config/i18n.php
    

    p.s. Для windows окружения php yii….Работа с console должна быть настроена т.е. необходимые компоненты должны быть подключены.

    Должен создаться файл /common/config/i18n.php:
    return [
        'sourcePath' => __DIR__. '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR,
        'languages' => ['pt-PT','ru-RU','uk-UA','en-US'], // языки на которые будут использоваться
        'translator' => 'Yii::t',
        'sort' => false,
        'removeUnused' => false,
        'only' => ['*.php'],// расширения файлов в которых искать категории
        'except' => [//исключить эти источники
            '.svn',
            '.git',
            '.gitignore',
            '.gitkeep',
            '.hgignore',
            '.hgkeep',
            '/messages',
            '/vendor',
        ],
        'format' => 'php',// формат хранения переводов
        'messagePath' => __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'messages',
        'overwrite' => true, 
    ];
    


    Создайте папку common/messages для хранения переводов !
Читать дальше →

Information

Rating
Does not participate
Location
Ашмор и Картьер о-ва
Registered
Activity