User::findAll()]); } /** * Create * * Render the main Auth formulary */ function create(User $auth) { Output::render('form', $auth); } /** * Store * * Store the param on the database * @param User $auth */ function store(User $auth) { $auth->charge($_POST); if (request('password') == '') { unset($auth->password); } else { $auth->password = md5(request('password')); } $auth->save(); $auth->appendGroups(request('groups')); Response::json($auth)->send(); } /** * Show * * Render one register * * @param Auth $auth */ function show(Auth $auth) { } /** * Edit * * Render the formular for a database Auth * * @param Auth $auth */ function edit(User $auth) { Output::render('form', $auth); } /** * Update * Store the changes of the param on the database * * @param User $auth */ function update(User $auth) { $auth->charge($_POST); if (request('password') == '') { unset($auth->password); } else { $auth->password = md5(request('password')); } $auth->save(); $auth->appendGroups(request('groups')); Response::json($auth)->send(); } /** * Destroy * If the object has soft delete. * * @param Auth $auth */ function destroy(Auth $auth) { } /** * Purge * Remove object even with soft delete. * * @param Auth $auth */ function purge(Auth $auth) { } function login() { if ($user = User::findOne(['username' => ['=', $_POST['login']], 'password' => ['=', md5($_POST['password'])]])) { AuthController::executeLogin($user); } else { Output::setTemplate('NullTemplate'); Output::render('login', ['errors' => ['name' => 'Não há usuário com essa senha']]); } } /** * Prints the system login form */ function loginForm() { if (self::isLoggedIn()) { Response::redirect('/'); } else { Output::setTemplate('NullTemplate'); Output::render('login'); } } /** * Just check if the user is set on the _SESSION variable * * @return bool */ public static function isLoggedIn() { if ($_SESSION['user']) { AuthenticatedUser::load(); } else { return false; } return true; } /** * Check if the token passed on the wstoken param is valid * by valid. * - Exist * - Not Expired * - Has the permission * * @return bool */ public static function isTokenValid() { if ($token = Token::findOne(['token' => ['=', request('wstoken')]])) { AuthenticatedUser::load($token->user()); } else { return false; } return true; } /** * Given a permission. Check if the loged user can execute it * * @param String $permission */ public static function canAccess($permission) { if (AuthenticatedUser::permissions() == null) { return false; } if (in_array('sys:admin', AuthenticatedUser::permissions())) { return true; } if (in_array($permission, AuthenticatedUser::permissions())) { return true; } return false; } /** * In case the login form is valid. Persist user data on SESSION * so the login system words onwards * * TODO - Cache wantsPage * * @param User $user */ function executeLogin(User $user) { $_SESSION['user']['user'] = $user->id; $_SESSION['user']['permission'] = $user->permissions(); header("location: /"); } /** * Execute the system logout */ function logout() { session_destroy(); header("location: /auth/login"); } }