protected function loginAction() { $user = AuthUser::getInstance(); $request = Service::request(); $token = $user->login($request->post('login'), $request->post('password')); return $token ? ['state' => true, 'token' => $token] : ['state' => false, 'msg' => 'Неверные логин/пароль']; }
private function __construct() { self::$curUser = new User(); if (Service::request()->post('token')) { self::loadByToken(Service::request()->post('token')); } }
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); }
<? header('Content-Type: text/html; charset=utf-8'); require_once './src/Base/AutoLoader/AutoLoader.php'; header('Content-Type: application/json'); set_exception_handler(function (Exception $error) { echo json_encode(['state' => false, 'msg' => $error->getMessage()]); }); use Base\AutoLoader\AutoLoader; use Services\Service; AutoLoader::init(); //минироутинг echo \Api\Router\Router::run(Service::request()->post('action'));
/** * Проверка типов создаваемых/редактируемых пользователей * @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('Не корректные права пользователя'); } }
/** * Удалить запись * @return int * @throws \Base\Db\MySql\Exception */ public function delete() { return Service::db()->delete('DELETE FROM ' . static::$TABLE . ' WHERE id = :id', ['id' => $this->id]); }
/** * Грузим по токену * @param $token * @return null */ public function loadByToken($token) { $data = Service::db()->select('SELECT ' . implode(',', static::$fields) . ' FROM ' . self::$TABLE . " WHERE token = :token AND UNIX_TIMESTAMP(tokenExpired) > UNIX_TIMESTAMP(:tokenExpired) LIMIT 0,1", ['token' => $token, 'tokenExpired' => date('Y-m-d H:i:s')]); if (isset($data[0])) { $this->assign($data[0]); } return $this; }