_getAuth()->getUser(); $form = new UserSettingsForm($user); if ($this->request->isPost()) { $data = $this->request->getPost(); if ($form->isValid($data)) { $new_pw = $form->getValue('passwordNew'); if (strlen($new_pw) > 0) { $hash = password_hash($new_pw, PASSWORD_BCRYPT); $user->setPassword($hash); } $user->save(); $form->initialize(); $this->flash->message('success', 'Settings saved!'); } else { $this->flash->message('error', 'Could not save settings'); } } $this->view->user = $user; $this->view->form = $form; } public function activityAction($page = 1) { $user = $this->_getAuth()->getUser(); $paginator = ActivityLog::getPaginationList($user->getId(), $page); $this->view->page = $paginator->getPaginate(); $this->view->pagination_url = '/user/activity/'; } public function oauthDisconnectAction($provider, $last_unlink_confirmed = false) { $user = $this->_getAuth()->getUser(); // Check if we are unlinking the last provider if (count($user->getSocialLinks()) <= 1) { // If user does not have a password, we wont allow it. if (strlen($user->getPassword()) < 1) { $msg = 'Unlinking your last OAuth provider cannot be done ' . 'if you don\'t have a password as it would be impossible for you to log in.'; $this->flash->message('error', $msg); $this->response->redirect('/settings'); return; } // Give a warning to the user about password as the only login option. if ($last_unlink_confirmed == false) { $url = $this->url->get([ 'for' => 'oauth-disconnect-confirm', 'provider' => $provider, 'confirm' => 'confirm', ]); $msg = '
You are about to unlink the last OAuth provider.' . ' Your only login option will be password if you do this.
' . 'Are you sure? Yes
'; $this->flash->message('warning', $msg); $this->response->redirect('/settings'); return; } } $user->{'set' . $provider . 'Id'}(null); $user->save(); $this->flash->message('success', "{$provider} was disconnected
"); $this->response->redirect('/settings'); } }