add role checking to controllers
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user