Пример #1
0
 function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
 {
     $base = $this->platformSettings->urlPrefix();
     if ($base == '') {
         $base = '*';
     } else {
         $base = "{$base}...";
     }
     return $this->router->set([$base => [AuthenticationMiddleware::class, '.' => Home::class, 'news' => NewsIndex::class, 'news/@id' => NewsForm::class]])->__invoke($request, $response, $next);
 }
Пример #2
0
 function defineNavigation(NavigationInterface $nav)
 {
     $userMenu = ['users-management' => $nav->group()->id('userMenu')->icon('fa ion-person')->title('$APP_USER_MENU')->links(['profile' => $nav->link()->id('profile')->title('$LOGIN_PROFILE')->icon('fa ion-person')->visible($this->settings->enableProfile()), 'users' => $nav->link()->id('users')->title('$APP_SETTINGS_USERS')->icon('fa ion-person-stalker')->visible(function () {
         $user = $this->session->user();
         if (!$user) {
             return false;
         }
         return $this->settings->enableUsersManagement() && $user->roleField() >= UserInterface::USER_ROLE_ADMIN;
     })->links(['@id' => $nav->link()->id('userForm')->title('$APP_SETTINGS_USER')->visibleIfUnavailable(Y)]), '-' => $nav->divider(), '' => $nav->link()->url($this->authenticationSettings->getLogoutUrl())->title('$LOGOUT')->icon('fa ion-log-out')])];
     $nav->add([$nav->group()->id('app_home')->title('$APP_HOME')->icon('fa fa-home')->url($this->settings->urlPrefix())->links(['' => $nav->group()->id('mainMenu')->icon('fa ion-navicon')->title('Main Menu')->links(['' => $nav->link()->id('home')->icon('fa ion-home')->title('Home')]), 'settings' => $nav->group()->id('settings')->icon('fa ion-gear-a')->title('Platform')->links($userMenu)])]);
 }
Пример #3
0
 function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
 {
     $this->redirection->setRequest($request);
     $base = $this->settings->urlPrefix();
     $base = $base ? "{$base}..." : '*';
     return $this->router->set([$base => [when($this->settings->requireAuthentication(), AuthenticationMiddleware::class), '.' => page('platform/home.html'), 'settings...' => [when($this->settings->enableUsersManagement(), ['users-management...' => ['users' => factory(function (UsersPage $page) {
         // This is done here just to show off this possibility
         $page->templateUrl = 'platform/users/users.html';
         return $page;
     }), 'users/@id' => UserPage::class, 'profile' => factory(function (UserPage $page) {
         $page->editingSelf = true;
         return $page;
     })]])]]])->__invoke($request, $response, $next);
 }
Пример #4
0
 protected function viewModel(ViewModel $viewModel)
 {
     $user = $viewModel->user = $this->user;
     $mySelf = $this->session->user();
     $isDev = $mySelf->roleField() == UserInterface::USER_ROLE_DEVELOPER;
     $isAdmin = $mySelf->roleField() == UserInterface::USER_ROLE_ADMIN;
     // Are we editing the logged-in user?
     $isSelf = $user->idField() == $mySelf->idField();
     if ($isSelf) {
         $this->session->setPreviousUrl($this->request->getHeaderLine('Referer'));
     }
     $viewModel->role = ['dev' => UserInterface::USER_ROLE_DEVELOPER, 'admin' => UserInterface::USER_ROLE_ADMIN, 'standard' => UserInterface::USER_ROLE_STANDARD, 'guest' => UserInterface::USER_ROLE_GUEST];
     $viewModel->show = ['roles' => $isDev || $isAdmin && $this->adminSettings->allowEditRole(), 'active' => !$isSelf && $this->adminSettings->enableUsersDisabling()];
     $viewModel->canDelete = $user->exists && ($isDev || !$isSelf || $this->adminSettings->allowDeleteSelf()) ?: null;
     $viewModel->canRename = $this->adminSettings->allowRename();
 }