<?php /** * Roles list view. * * @var \yii\base\View $this View * @var \yii\data\ArrayDataProvider $provider Data provider */ use app\modules\rbac\Module; use yii\grid\ActionColumn; use yii\grid\CheckboxColumn; use yii\helpers\Html; $this->title = Module::t('rbac', 'BACKEND_ROLES_INDEX_TITLE'); $this->params['subtitle'] = Module::t('rbac', 'BACKEND_ROLES_INDEX_SUBTITLE'); $this->params['breadcrumbs'] = [$this->title]; $gridId = 'roles-grid'; $gridConfig = ['id' => $gridId, 'dataProvider' => $provider, 'columns' => [['class' => CheckboxColumn::classname()], 'item_name', ['attribute' => 'user', 'format' => 'html', 'value' => function ($model) { if ($model->user) { return Html::a("{$model->user->username} ({$model->user->email})", ['/user/default/view', 'id' => $model->user->id]); } else { return ''; } }], 'created_at:date']]; $boxButtons = $actions = []; $showActions = false; if (Yii::$app->user->can('adminAssignmentCreate')) { $boxButtons[] = '{create}'; } if (Yii::$app->user->can('adminAssignmentUpdate')) { $actions[] = '{update}'; $showActions = $showActions || true;
/** * Find Assignment by name. * * @param string $name Assignment name * * @return RbacAssignment * * @throws HttpException 404 error if role not found */ protected function findAssignment($name) { if ($model = RbacAssignment::find()->where(['item_name' => $name])->one() !== null) { return $model; } else { throw new HttpException(404, Module::t('rbac', 'BACKEND_ROLES_NOT_FOUND')); } }
<?php use app\modules\rbac\Module; use app\modules\rbac\rules\UserSuperAdminRule; return ['permissions' => ['adminAssignmentView' => Module::t('rules', 'View Assignment'), 'adminAssignmentCreate' => Module::t('rules', 'Create Assignment'), 'adminAssignmentUpdate' => Module::t('rules', 'Update Assignment'), 'adminAssignmentDelete' => Module::t('rules', 'Delete Assignment')], 'roles' => ['superAdmin' => Module::t('rules', 'Super Administrator'), 'guest' => Module::t('rules', 'Guest'), 'adminAssignmentReader' => Module::t('rules', 'Read Assignments'), 'adminAssignmentManager' => Module::t('rules', 'Manage Assignments')], 'assignments' => ['adminAssignmentReader' => ['adminAssignmentView'], 'adminAssignmentManager' => ['adminAssignmentReader', 'adminAssignmentCreate', 'adminAssignmentUpdate', 'adminAssignmentDelete']], 'rules' => ['superAdmin' => new UserSuperAdminRule(['role' => 'superAdmin'])]];
<?php use app\models\ModuleDefinition; use app\modules\rbac\Module; return ['id' => 'rbac', 'class' => Module::className(), 'config' => [], 'name' => 'Access Rights', 'package' => ModuleDefinition::PACKAGE_CORE, 'category' => Module::TRANSLATE_CATEGORY, 'required' => true, 'menu' => ['rbac.index' => ['title' => 'Access Rights', 'icon' => 'fa-group'], 'rbac.permissions' => ['title' => 'Permissions', 'route' => ['/rbac/permissions/index'], 'parent' => 'rbac.index'], 'rbac.roles' => ['title' => 'Roles', 'route' => ['/rbac/roles/index'], 'parent' => 'rbac.index']]];