add role to user

This commit is contained in:
2015-11-05 09:26:08 +01:00
parent bdd5a94b3f
commit 43d5598f23
9 changed files with 151 additions and 17 deletions

View File

@@ -1,10 +1,6 @@
<?php
namespace common\components;
use yii\base\InvalidConfigException;
use Yii;
use yii\base\Model;
class Helper
{
@@ -27,4 +23,28 @@ class Helper
$query->andFilterWhere([ '<' , $field , $end ] );
}
public static function roleLabels(){
return [
'reception' => Yii::t('common/role' ,'Reception'),
'admin' => Yii::t('common/role' ,'Administrator'),
'employee' => Yii::t('common/role' ,'Alkalmazott'),
];
}
public static function roleDefinitions(){
return [
'employee' => [
'canAllow' => [ 'employee'],
],
'admin' => [
'canAllow' => ['admin','reception','employee'],
],
'reception' => [
'canAllow' => [ ],
],
];
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace common\components;
use \Yii;
class RoleDefinition{
public static function roleLabels(){
return [
'reception' => Yii::t('common/role' ,'Reception'),
'admin' => Yii::t('common/role' ,'Administrator'),
'employee' => Yii::t('common/role' ,'Employee'),
];
}
public static function getRoleLabel($role){
$result = null;
$roleLabels = self::roleLabels();
if ( array_key_exists($role, $roleLabels)){
$result = $roleLabels[$role];
}
return $result;
}
public static function roleDefinitions(){
return [
'employee' => [
'canAllow' => [ 'employee'],
],
'admin' => [
'canAllow' => ['admin','reception','employee'],
],
'reception' => [
'canAllow' => [ ],
],
];
}
public static function getRoleDefinition($role){
$defs = self::roleDefinitions();
$result = null;
if ( array_key_exists($role, $defs)){
$result = $defs[$role];
}
$result = $defs[$role];
return $result;
}
public static function getRolesCanAllow($role){
$result = [];
$def = self::getRoleDefinition($role);
if ( isset($def)){
$result = $def['canAllow'];
}
return $result;
}
}

View File

@@ -6,6 +6,7 @@ use yii\base\NotSupportedException;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;
use common\components\RoleDefinition;
/**
* User model
@@ -212,10 +213,27 @@ class User extends ActiveRecord implements IdentityInterface
'username' => Yii::t('backend/user', 'Username'),
'email' => Yii::t('backend/user', 'E-Mail'),
'created_at' => Yii::t('backend/user', 'Created at'),
'role' => Yii::t('backend/user', 'Role'),
];
}
/**
*
*
* @return \yii\rbac\Role[]*/
public function getRoles(){
$roles = \Yii::$app->authManager->getRolesByUser($this->id );
return $roles;
}
/**
* @return string
* */
public function getRoleString(){
$roles = \Yii::$app->authManager->getRolesByUser($this->id );
return implode(', ', array_map(function ($role) { return sprintf("%s", RoleDefinition::getRoleLabel($role->name)); }, $roles ));
}
/**
* $param int $forceIncludeAccount id warehouse, that should be included in list, even if it is inactive