public function changeEmailAjax() { # some validation... $new_email = User::FilterEmail($this->request->getPost()['new_email']); $response = array(); if ($new_email) { $user = Session::get('user'); $old_email = $user->getEmail(); $user->setEmail($new_email); $model = App::getModel('login'); $model->setUser($user); if ($model->update($user->getId())) { $response['msg'] = 'Success'; } else { $response['msg'] = 'Error'; $response['error'] = 'Could not update user!'; $user->setEmail($old_email); } Session::set('user', $user); } else { $response['msg'] = 'Error'; } echo json_encode($response); }
private function filterPost($data) { $email = User::FilterEmail($data['email']); $password = isset($data['password']) ? $data['password'] : null; $role = isset($data['roles']) ? $data['roles'] : 'default'; if (!in_array($role, ['default', 'admin', 'owner'])) { $role = 'default'; } $this->user = App::getModel('user')->init(null, $email, $password); $this->user->setRole($role); if (strlen(trim($password)) < 3) { $this->errors = ['Password is too short.']; return false; } return true; }