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

@@ -172,19 +172,68 @@ class AdminMenuStructure
/////////////////////////////
// Group Training
/////////////////////////////
if (RoleDefinition::isLoggedUser()) {
$items = [];
$items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type']];
$items[] = ['label' => 'Edzők', 'url' => ['/trainer']];
$items[] = ['label' => 'Termek', 'url' => ['/room']];
$items[] = ['label' => 'Esemény típusok', 'url' => ['/event-type']];
$items[] = ['label' => 'Események', 'url' => ['/event/event/index']];
$items[] = ['label' => 'Órarend', 'url' => ['/event/event/timetable']];
$items[] = ['label' => 'Hét másolása', 'url' => ['/event/event/copy-week']];
$this->menuItems[] = ['label' => 'Csoportos edzés', 'url' => $this->emptyUrl,
'items' => $items
];
}
$items = [];
// $items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type'], 'role' => [RoleDefinition::$ROLE_ADMIN]];
$items[] = [
'label' => 'Edzők',
'url' => ['/trainer'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
]
];
$items[] = ['label' => 'Termek',
'url' => ['/room'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
]
];
$items[] = ['label' => 'Esemény típusok',
'url' => ['/event-type'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
]
];
$items[] = [
'label' => 'Események',
'url' => ['/event/event/index'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
RoleDefinition::$ROLE_TRAINER
]
];
$items[] = [
'label' => 'Órarend',
'url' => ['/event/event/timetable'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
RoleDefinition::$ROLE_TRAINER
]
];
$items[] = [
'label' => 'Hét másolása',
'url' => ['/event/event/copy-week'],
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
RoleDefinition::$ROLE_TRAINER
]
];
$this->menuItems[] = [
'label' => 'Csoportos edzés',
'url' => $this->emptyUrl,
'items' => $items,
'role' => [
RoleDefinition::$ROLE_ADMIN,
RoleDefinition::$ROLE_EMPLOYEE,
RoleDefinition::$ROLE_TRAINER
]
];
/////////////////////////////
// Development
@@ -198,10 +247,50 @@ class AdminMenuStructure
];
}
$this->menuItems = $this->filterMenu($this->menuItems);
}
}
protected function filterMenu($menuItems)
{
$result = [];
foreach ($menuItems as $item) {
$filteredItem = $this->filterMenuItem($item);
if (isset($filteredItem)) {
$result[] = $filteredItem;
}
}
return $result;
}
protected function filterMenuItem($menuItem)
{
$result = $menuItem;
if (isset($menuItem)) {
if (isset($menuItem['role'])) {
$roles = $menuItem['role'];
$canAny = RoleDefinition::canAny($roles);
if ($canAny === false) {
$result = null;
} else {
if (isset($menuItem['items'])) {
$result['items'] = [];
$items = $menuItem['items'];
foreach ($items as $subItem) {
$filteredItem = $this->filterMenuItem($subItem);
if (isset($filteredItem)) {
$result['items'][] = $filteredItem;
}
}
}
}
}
}
return $result;
}
protected function addLoginMainMenu()
{
if (Yii::$app->user->isGuest) {