itstructure/yii2-rbac-module Module to manage roles and permissions for the Yii2 Framework.

rbacmodule

Yii2 RBAC module

Introduction

Latest Stable Version Latest Unstable Version License Total Downloads Build Status Scrutinizer Code Quality

RBAC module - Module for the Yii2 framework, which provides management with the next data:

  • Roles
  • Permissions
  • Assign roles for users(profiles)

RBAC extension structure

Dependencies

  • php >= 7.1
  • composer
  • MySql >= 5.5

Installation

General from remote repository

Via composer:

composer require itstructure/yii2-rbac-module "~3.0.5"

If you are testing this package from local server directory

In application composer.json file set the repository, like in example:

"repositories": [
    {
        "type": "path",
        "url": "../yii2-rbac-module",
        "options": {
            "symlink": true
        }
    }
],

Here,

yii2-rbac-module - directory name, which has the same directory level like application and contains yii2 rbac module.

Then run command:

composer require itstructure/yii2-rbac-module:dev-master --prefer-source

Addition components

In accordance with the documentation for Yii2, set authManager for application:

'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],
    // ...
],

In accordance with the documentation for Yii2, run command:

yii migrate --migrationPath=@yii/rbac/migrations

Usage

Main properties

  • The name of module: rbac

  • The namespace for used classes: Itstructure\RbacModule.

  • The alias to access in to module root directory: @rbac.

  • There is not a layout ! It's taken from application layout main by default or how it is configured. You cat set layout attribute in module by custom.

  • View component is taken by default from the framework like yii\web\View. You cat set view component in module by custom.

Application config

Base application config must be like in example below:

use Itstructure\RbacModule\Module;
use Itstructure\RbacModule\controllers\{RoleController, PermissionController, ProfileController};
'modules' => [
    'rbac' => [
        'class' => Module::class,
        'controllerMap' => [
            'roles' => RoleController::class,
            'permissions' => PermissionController::class,
            'profiles' => ProfileController::class,
        ],
    ],
],

Useful module attributes

You can set the following attributes in a module config:

  • loginUrl - set url to be redirected if you are not authorized.
  • accessRoles - The roles of users who are allowed access to work with this package.
  • urlPrefix - Url prefix for redirect and view links (Default is empty).
  • urlPrefixNeighbor - Url prefix for redirect and view links of neighbor entity (Default is empty).

License

Copyright © 2018-2023 Andrey Girnik girnikandrey@gmail.com.

Licensed under the MIT license. See LICENSE.txt for details.

Changelog

CHANGE LOG:

3.0.5 January 30, 2023:

  • Upgrade copyright year.

3.0.4 April 17, 2021:

  • Bug fix: Call to a member function validateCsrfToken() on string.

3.0.3 February 23, 2021:

  • Upgrade copyright year.

3.0.2 July 26, 2020:

  • Set translations in attributeLabels() for Roles and Permissions.

3.0.1 July 17, 2020:

  • Bug fix for registerTranslations() method. Set it static.
  • Readme fixes.

3.0.0 August 5, 2018:

  • Code fixes according with the PSR standards.
  • Rename RolesController to RoleController.
  • Rename PermissionsController to PermissionController.
  • Rename ProfilesController to ProfileController.

2.0.0 August 1, 2018:

  • Created classes to assign roles for profiles.
  • Code optimization.

1.1.0 June 16, 2018:

  • Add urlPrefix parameter in to BaseController for redirect and view links.

1.0.0 May 13, 2018:

  • Create module, which provides management with the next data:
    • Roles
    • Permissions
  • Created documentation.

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



3.0.5 is the latest of 9 releases



MIT license
Stats
2 github stars & 0 github forks
0 downloads in the last day
2 downloads in the last 30 days
323 total downloads