public function __construct(ActionPage $page, $allowedRoles = array()) { parent::__construct($page); $user = ServiceLocator::GetServer()->GetUserSession(); $isAllowed = empty($allowedRoles); foreach ($allowedRoles as $roleId) { if ($user->IsAdmin) { $isAllowed = true; } if ($roleId == RoleLevel::GROUP_ADMIN && $user->IsGroupAdmin) { $isAllowed = true; } if ($roleId == RoleLevel::RESOURCE_ADMIN && $user->IsResourceAdmin) { $isAllowed = true; } if ($roleId == RoleLevel::SCHEDULE_ADMIN && $user->IsScheduleAdmin) { $isAllowed = true; } } if (!$isAllowed) { $this->RedirectResume($this->GetResumeUrl()); die; } }
<?php /** Copyright 2011-2014 Nick Korbel This file is part of Booked Scheduler. Booked Scheduler is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Booked Scheduler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Booked Scheduler. If not, see <http://www.gnu.org/licenses/>. */ define('ROOT_DIR', '../'); require_once ROOT_DIR . 'Pages/PersonalCalendarPage.php'; $page = new SecureActionPageDecorator(new PersonalCalendarPage()); if ($page->TakingAction()) { $page->ProcessAction(); } else { $page->PageLoad(); }
<?php /** Copyright 2011-2015 Nick Korbel This file is part of Booked Scheduler. Booked Scheduler is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Booked Scheduler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Booked Scheduler. If not, see <http://www.gnu.org/licenses/>. */ define('ROOT_DIR', '../'); require_once ROOT_DIR . 'Pages/ProfilePage.php'; $page = new SecureActionPageDecorator(new ProfilePage()); $page->PageLoad();