public function indexAjax() { $input = Input::requireParams('username'); $username = $input->username; $id = (int) $this->getUser('id'); $validator = Validator::create(array('username' => "required|unique:\\User,username,{$id},id", 'first_name' => 'max:80', 'last_name' => 'max:160', 'password' => 'min:5|max:32', 'password2' => 'identical:password', 'timezone' => 'required|max:80')); if ($validator->failed()) { return BootstrapUI::formResponse()->failedOn($validator); } $input = $validator->getParamsObj(); $user = User::fetchOne($this->getUser('id')); $userSessionData = Session::get('user'); $refresh = $user->timezone != $input->timezone; $user->username = $input->username; $user->first_name = $input->first_name; $user->last_name = $input->last_name; $user->timezone = $input->timezone; if ($input->password !== null && strlen($input->password) >= 5) { $user->pass = md5($input->password); } $user->save(); foreach ($user->getData() as $key => $value) { $userSessionData[$key] = $value; } Session::set('user', $userSessionData); if ($refresh) { return BootstrapUI::formResponse()->refresh(); } else { return BootstrapUI::formResponse(); } }
public function indexAjax() { $input = Input::requireParams('username', 'pass', 'r'); if (($user = User::auth($input->username, $input->pass)) !== false) { $sessionData = $user->getData(); $sessionData['previous_login'] = $user->last_login; $user->updateLoginStats(); $sessionData['last_login'] = gmdate('Y-m-d H:i:s'); Cookie::set('username', $input->username, time() + 3600 * 24 * 30); Log::info("User {$input->username} logged in with " . Request::userAgent()); // some stats $sessionData['stats'] = array('new_stack_traces' => \Stack\Trace::getNewCount($sessionData['previous_login'])); Session::set('user', $sessionData); return BootstrapUI::formResponse()->redirect(base64_decode($input->r)); } else { Log::info("Invalid auth for '{$input->username}' with '{$input->pass}'"); return BootstrapUI::formResponse()->failed('Wrong username or password'); } }