assign trainers to user; add email to jwt token

This commit is contained in:
Roland Schneider
2021-10-04 18:13:32 +02:00
parent 439fb12b6e
commit 7a55ca9ff3
21 changed files with 671 additions and 350 deletions

View File

@@ -1,118 +1,147 @@
<?php
namespace common\components;
use \Yii;
class RoleDefinition{
class RoleDefinition
{
public static $ROLE_ADMIN = "admin";
public static $ROLE_RECEPTION = "reception";
public static $ROLE_EMPLOYEE = "employee";
public static $ROLE_TRAINER = "trainer";
public static function roleLabels()
{
return [
'reception' => Yii::t('common/role', 'Reception'),
'admin' => Yii::t('common/role', 'Administrator'),
'employee' => Yii::t('common/role', 'Employee'),
'Trainer' => Yii::t('common/role', 'Edző'),
];
}
public static function roleLabels(){
return [
'reception' => Yii::t('common/role' ,'Reception'),
'admin' => Yii::t('common/role' ,'Administrator'),
'employee' => Yii::t('common/role' ,'Employee'),
'Trainer' => Yii::t('common/role' ,'Edző'),
];
}
public static function getRoleLabel($role){
$result = null;
$roleLabels = self::roleLabels();
if ( array_key_exists($role, $roleLabels)){
$result = $roleLabels[$role];
}
return $result;
}
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 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 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'];
}
public static function getRolesCanAllow($role)
{
$result = [];
$def = self::getRoleDefinition($role);
if (isset($def)) {
$result = $def['canAllow'];
}
return $result;
}
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 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 canAny($roles)
{
foreach ($roles as $role) {
if (self::can($role)) {
return true;
}
}
return false;
}
public static function isReception(){
return self::can('reception');
}
public static function isAdmin()
{
return self::can('admin');
}
public static function isEmployee(){
return self::can('employee');
}
public static function isReception()
{
return self::can('reception');
}
public static function isTrainer(){
return self::can('trainer');
}
public static function isEmployee()
{
return self::can('employee');
}
public static function isTrainer()
{
return self::can('trainer');
}
public static function isLoggedUser(){
public static function isLoggedUser()
{
return self::isTrainer() || self::isAdmin() || self::isEmployee()
|| self::isReception();
}
/*
* [
* '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;
}
/*
* [
* '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;
}
}