public static function run($action) { list($controller, $ctrlAct) = explode('.', $action, 2) + [null, null]; switch ($controller) { //логиним пользователя case 'auth': $data = (new AuthUserController())->run($ctrlAct); break; //Действия над ползователем //Действия над ползователем case 'user': if (Service::user()->id) { $uc = new UserController(); $data = $uc->run($ctrlAct); } else { $data = ['state' => false, 'msg' => 'Необходима авторизация']; } break; default: $data = ['state' => false, 'msg' => 'Ошибка роутинга']; break; } return json_encode($data); }
/** * Проверка типов создаваемых/редактируемых пользователей * @return bool * @throws \Exception */ protected function checkUserType() { $accessTypes = []; $userData = Service::request()->post('userData'); $userType = isset($userData['permission']) ? $userData['permission'] : null; if (Service::user()->isSuperAdmin()) { array_push($accessTypes, User::USER, User::ADMIN); } elseif (Service::user()->isAdmin()) { $accessTypes[] = User::USER; } if ($userType !== null && !in_array($userType, $accessTypes)) { throw new \Exception('Не корректные права пользователя'); } }