add role checking to controllers

This commit is contained in:
2015-11-05 17:24:09 +01:00
parent 43d5598f23
commit cc83ccf761
39 changed files with 362 additions and 78 deletions

View File

@@ -60,6 +60,49 @@ class RoleDefinition{
return $result;
}
public static function can($role){
$result = false;
if ( !Yii::$app->user->isGuest ){
if ( isset( $role)){
if ( is_array($role)){
foreach ($role as $r){
$result |= Yii::$app->user->can($r);
}
}else if ( is_string($role)){
$result = Yii::$app->user->can($role);
}
}
}
return $result;
}
public static function isAdmin(){
return self::can('admin');
}
public static function isReception(){
return self::can('reception');
}
public static function isEmployee(){
return self::can('employee');
}
/*
* [
* 'role1' => 'template1',
* 'role2' => 'template2,
* ]
* */
public static function getRoleTemplate($templates){
$result = "";
foreach ($templates as $role => $template ){
if ( Yii::$app->user->can($role)){
$result = $template;
break;
}
}
return $result;
}
}