From 1252b3dd867e59917cf303f0c39c7da938b8ce32 Mon Sep 17 00:00:00 2001
From: Marien Fressinaud
Date: Tue, 7 Oct 2014 16:37:10 +0200
Subject: Authentication system moved + Persona comes back!
AuthController is dedicated to auhentication.
Persona is back, greater than ever!
See https://github.com/marienfressinaud/FreshRSS/issues/655
---
app/views/auth/formLogin.phtml | 28 ++++++++++++++++++++++++++++
app/views/auth/logout.phtml | 0
app/views/auth/personaLogin.phtml | 24 ++++++++++++++++++++++++
3 files changed, 52 insertions(+)
create mode 100644 app/views/auth/formLogin.phtml
create mode 100644 app/views/auth/logout.phtml
create mode 100644 app/views/auth/personaLogin.phtml
(limited to 'app/views/auth')
diff --git a/app/views/auth/formLogin.phtml b/app/views/auth/formLogin.phtml
new file mode 100644
index 000000000..0194a11a5
--- /dev/null
+++ b/app/views/auth/formLogin.phtml
@@ -0,0 +1,28 @@
+
diff --git a/app/views/auth/logout.phtml b/app/views/auth/logout.phtml
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/auth/personaLogin.phtml b/app/views/auth/personaLogin.phtml
new file mode 100644
index 000000000..d62fe5818
--- /dev/null
+++ b/app/views/auth/personaLogin.phtml
@@ -0,0 +1,24 @@
+res === false) { ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+res);
+}
+?>
--
cgit v1.2.3
From dbf57266b297c3f831602ec4f451c27a5ad71e6b Mon Sep 17 00:00:00 2001
From: Marien Fressinaud
Date: Tue, 7 Oct 2014 16:58:11 +0200
Subject: Reset auth system comes back!
It has moved to authController.
---
app/Controllers/authController.php | 68 ++++++++++++++++++++++++++++++++++++++
app/views/auth/personaLogin.phtml | 2 +-
app/views/auth/reset.phtml | 33 ++++++++++++++++++
3 files changed, 102 insertions(+), 1 deletion(-)
create mode 100644 app/views/auth/reset.phtml
(limited to 'app/views/auth')
diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php
index 2b67e34b8..e30fa4b72 100644
--- a/app/Controllers/authController.php
+++ b/app/Controllers/authController.php
@@ -179,4 +179,72 @@ class FreshRSS_auth_Controller extends Minz_ActionController {
Minz_Request::good(_t('disconnected'),
array('c' => 'index', 'a' => 'index'));
}
+
+ /**
+ * This action resets the authentication system.
+ *
+ * After reseting, form auth is set by default.
+ */
+ public function resetAction() {
+ Minz_View::prependTitle(_t('auth_reset') . ' · ');
+
+ Minz_View::appendScript(Minz_Url::display(
+ '/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js')
+ ));
+
+ $this->view->no_form = false;
+ // Enable changement of auth only if Persona!
+ if (Minz_Configuration::authType() != 'persona') {
+ $this->view->message = array(
+ 'status' => 'bad',
+ 'title' => _t('damn'),
+ 'body' => _t('auth_not_persona')
+ );
+ $this->view->no_form = true;
+ return;
+ }
+
+ $conf = new FreshRSS_Configuration(Minz_Configuration::defaultUser());
+ // Admin user must have set its master password.
+ if (!$conf->passwordHash) {
+ $this->view->message = array(
+ 'status' => 'bad',
+ 'title' => _t('damn'),
+ 'body' => _t('auth_no_password_set')
+ );
+ $this->view->no_form = true;
+ return;
+ }
+
+ invalidateHttpCache();
+
+ if (Minz_Request::isPost()) {
+ $nonce = Minz_Session::param('nonce');
+ $username = Minz_Request::param('username', '');
+ $challenge = Minz_Request::param('challenge', '');
+
+ $ok = FreshRSS_FormAuth::checkCredentials(
+ $username, $conf->passwordHash, $nonce, $challenge
+ );
+
+ if ($ok) {
+ Minz_Configuration::_authType('form');
+ $ok = Minz_Configuration::writeFile();
+
+ if ($ok) {
+ Minz_Request::good(_t('auth_form_set'));
+ } else {
+ Minz_Request::bad(_t('auth_form_not_set'),
+ array('c' => 'auth', 'a' => 'reset'));
+ }
+ } else {
+ Minz_Log::warning('Password mismatch for' .
+ ' user=' . $username .
+ ', nonce=' . $nonce .
+ ', c=' . $challenge);
+ Minz_Request::bad(_t('invalid_login'),
+ array('c' => 'auth', 'a' => 'reset'));
+ }
+ }
+ }
}
diff --git a/app/views/auth/personaLogin.phtml b/app/views/auth/personaLogin.phtml
index d62fe5818..dd3e22b52 100644
--- a/app/views/auth/personaLogin.phtml
+++ b/app/views/auth/personaLogin.phtml
@@ -11,7 +11,7 @@
-
+
diff --git a/app/views/auth/reset.phtml b/app/views/auth/reset.phtml
new file mode 100644
index 000000000..e501555c4
--- /dev/null
+++ b/app/views/auth/reset.phtml
@@ -0,0 +1,33 @@
+
+
+
+ message)) { ?>
+
+ message['title']; ?>
+ message['body']; ?>
+
+
+
+ no_form) { ?>
+
+
+
--
cgit v1.2.3
From c5fe3bd6593d0a07c087d1e60ae2e4b8ab5f9fa9 Mon Sep 17 00:00:00 2001
From: Marien Fressinaud
Date: Thu, 16 Oct 2014 15:25:46 +0200
Subject: Reorganize user pages
Three pages:
- User profil
- User management
- Authentication
---
app/Controllers/authController.php | 60 ++++++++++
app/Controllers/userController.php | 198 +++++++++++++++++++++++++++++++++
app/Controllers/usersController.php | 210 -----------------------------------
app/layout/aside_configure.phtml | 12 +-
app/layout/header.phtml | 4 +-
app/views/auth/index.phtml | 84 ++++++++++++++
app/views/user/manage.phtml | 76 +++++++++++++
app/views/user/profil.phtml | 59 ++++++++++
app/views/users/index.phtml | 211 ------------------------------------
9 files changed, 490 insertions(+), 424 deletions(-)
create mode 100644 app/Controllers/userController.php
delete mode 100644 app/Controllers/usersController.php
create mode 100644 app/views/auth/index.phtml
create mode 100644 app/views/user/manage.phtml
create mode 100644 app/views/user/profil.phtml
delete mode 100644 app/views/users/index.phtml
(limited to 'app/views/auth')
diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php
index e30fa4b72..751ce1f3f 100644
--- a/app/Controllers/authController.php
+++ b/app/Controllers/authController.php
@@ -4,6 +4,66 @@
* This controller handles action about authentication.
*/
class FreshRSS_auth_Controller extends Minz_ActionController {
+ /**
+ * This action handles authentication management page.
+ *
+ * Parameters are:
+ * - token (default: current token)
+ * - anon_access (default: false)
+ * - anon_refresh (default: false)
+ * - auth_type (default: none)
+ * - unsafe_autologin (default: false)
+ * - api_enabled (default: false)
+ *
+ * @todo move unsafe_autologin in an extension.
+ */
+ public function indexAction() {
+ if (!FreshRSS_Auth::hasAccess('admin')) {
+ Minz_Error::error(403,
+ array('error' => array(_t('access_denied'))));
+ }
+
+ if (Minz_Request::isPost()) {
+ $ok = true;
+
+ $current_token = $this->view->conf->token;
+ $token = Minz_Request::param('token', $current_token);
+ $this->view->conf->_token($token);
+ $ok &= $this->view->conf->save();
+
+ $anon = Minz_Request::param('anon_access', false);
+ $anon = ((bool)$anon) && ($anon !== 'no');
+ $anon_refresh = Minz_Request::param('anon_refresh', false);
+ $anon_refresh = ((bool)$anon_refresh) && ($anon_refresh !== 'no');
+ $auth_type = Minz_Request::param('auth_type', 'none');
+ $unsafe_autologin = Minz_Request::param('unsafe_autologin', false);
+ $api_enabled = Minz_Request::param('api_enabled', false);
+ if ($anon != Minz_Configuration::allowAnonymous() ||
+ $auth_type != Minz_Configuration::authType() ||
+ $anon_refresh != Minz_Configuration::allowAnonymousRefresh() ||
+ $unsafe_autologin != Minz_Configuration::unsafeAutologinEnabled() ||
+ $api_enabled != Minz_Configuration::apiEnabled()) {
+
+ Minz_Configuration::_authType($auth_type);
+ Minz_Configuration::_allowAnonymous($anon);
+ Minz_Configuration::_allowAnonymousRefresh($anon_refresh);
+ Minz_Configuration::_enableAutologin($unsafe_autologin);
+ Minz_Configuration::_enableApi($api_enabled);
+ $ok &= Minz_Configuration::writeFile();
+ }
+
+ invalidateHttpCache();
+
+ if ($ok) {
+ Minz_Request::good('configuration_updated',
+ array('c' => 'auth', 'a' => 'index'));
+ } else {
+ Minz_Request::bad('error_occurred',
+ array('c' => 'auth', 'a' => 'index'));
+ }
+ }
+ }
+
/**
* This action handles the login page.
*
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
new file mode 100644
index 000000000..c516246c9
--- /dev/null
+++ b/app/Controllers/userController.php
@@ -0,0 +1,198 @@
+ array(_t('access_denied')))
+ );
+ }
+ }
+
+ /**
+ * This action displays the user profil page.
+ */
+ public function profilAction() {
+ Minz_View::prependTitle(_t('users.profil') . ' · ');
+
+ if (Minz_Request::isPost()) {
+ $ok = true;
+
+ $passwordPlain = Minz_Request::param('passwordPlain', '', true);
+ if ($passwordPlain != '') {
+ Minz_Request::_param('passwordPlain'); //Discard plain-text password ASAP
+ $_POST['passwordPlain'] = '';
+ if (!function_exists('password_hash')) {
+ include_once(LIB_PATH . '/password_compat.php');
+ }
+ $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
+ $passwordPlain = '';
+ $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
+ $ok &= ($passwordHash != '');
+ $this->view->conf->_passwordHash($passwordHash);
+ }
+ Minz_Session::_param('passwordHash', $this->view->conf->passwordHash);
+
+ $passwordPlain = Minz_Request::param('apiPasswordPlain', '', true);
+ if ($passwordPlain != '') {
+ if (!function_exists('password_hash')) {
+ include_once(LIB_PATH . '/password_compat.php');
+ }
+ $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
+ $passwordPlain = '';
+ $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
+ $ok &= ($passwordHash != '');
+ $this->view->conf->_apiPasswordHash($passwordHash);
+ }
+
+ // TODO: why do we need of hasAccess here?
+ if (FreshRSS_Auth::hasAccess('admin')) {
+ $this->view->conf->_mail_login(Minz_Request::param('mail_login', '', true));
+ }
+ $email = $this->view->conf->mail_login;
+ Minz_Session::_param('mail', $email);
+
+ $ok &= $this->view->conf->save();
+
+ if ($email != '') {
+ $personaFile = DATA_PATH . '/persona/' . $email . '.txt';
+ @unlink($personaFile);
+ $ok &= (file_put_contents($personaFile, Minz_Session::param('currentUser', '_')) !== false);
+ }
+
+ if ($ok) {
+ Minz_Request::good('users.profil.updated',
+ array('c' => 'user', 'a' => 'profil'));
+ } else {
+ Minz_Request::bad('error_occurred',
+ array('c' => 'user', 'a' => 'profil'));
+ }
+ }
+ }
+
+ /**
+ * This action displays the user management page.
+ */
+ public function manageAction() {
+ Minz_View::prependTitle(_t('users.manage') . ' · ');
+ }
+
+ public function createAction() {
+ if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
+ $db = Minz_Configuration::dataBase();
+ require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
+
+ $new_user_language = Minz_Request::param('new_user_language', $this->view->conf->language);
+ if (!in_array($new_user_language, $this->view->conf->availableLanguages())) {
+ $new_user_language = $this->view->conf->language;
+ }
+
+ $new_user_name = Minz_Request::param('new_user_name');
+ $ok = ($new_user_name != '') && ctype_alnum($new_user_name);
+
+ if ($ok) {
+ $ok &= (strcasecmp($new_user_name, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to alter the default user
+
+ $ok &= !in_array(strtoupper($new_user_name), array_map('strtoupper', listUsers())); //Not an existing user, case-insensitive
+
+ $configPath = DATA_PATH . '/' . $new_user_name . '_user.php';
+ $ok &= !file_exists($configPath);
+ }
+ if ($ok) {
+
+ $passwordPlain = Minz_Request::param('new_user_passwordPlain', '', true);
+ $passwordHash = '';
+ if ($passwordPlain != '') {
+ Minz_Request::_param('new_user_passwordPlain'); //Discard plain-text password ASAP
+ $_POST['new_user_passwordPlain'] = '';
+ if (!function_exists('password_hash')) {
+ include_once(LIB_PATH . '/password_compat.php');
+ }
+ $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
+ $passwordPlain = '';
+ $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
+ $ok &= ($passwordHash != '');
+ }
+ if (empty($passwordHash)) {
+ $passwordHash = '';
+ }
+
+ $new_user_email = filter_var($_POST['new_user_email'], FILTER_VALIDATE_EMAIL);
+ if (empty($new_user_email)) {
+ $new_user_email = '';
+ } else {
+ $personaFile = DATA_PATH . '/persona/' . $new_user_email . '.txt';
+ @unlink($personaFile);
+ $ok &= (file_put_contents($personaFile, $new_user_name) !== false);
+ }
+ }
+ if ($ok) {
+ $config_array = array(
+ 'language' => $new_user_language,
+ 'passwordHash' => $passwordHash,
+ 'mail_login' => $new_user_email,
+ );
+ $ok &= (file_put_contents($configPath, "createUser($new_user_name);
+ }
+ invalidateHttpCache();
+
+ $notif = array(
+ 'type' => $ok ? 'good' : 'bad',
+ 'content' => _t($ok ? 'user_created' : 'error_occurred', $new_user_name)
+ );
+ Minz_Session::_param('notification', $notif);
+ }
+
+ Minz_Request::forward(array('c' => 'user', 'a' => 'manage'), true);
+ }
+
+ public function deleteAction() {
+ if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
+ $db = Minz_Configuration::dataBase();
+ require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
+
+ $username = Minz_Request::param('username');
+ $ok = ctype_alnum($username);
+
+ if ($ok) {
+ $ok &= (strcasecmp($username, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to delete the default user
+ }
+ if ($ok) {
+ $configPath = DATA_PATH . '/' . $username . '_user.php';
+ $ok &= file_exists($configPath);
+ }
+ if ($ok) {
+ $userDAO = new FreshRSS_UserDAO();
+ $ok &= $userDAO->deleteUser($username);
+ $ok &= unlink($configPath);
+ //TODO: delete Persona file
+ }
+ invalidateHttpCache();
+
+ $notif = array(
+ 'type' => $ok ? 'good' : 'bad',
+ 'content' => _t($ok ? 'user_deleted' : 'error_occurred', $username)
+ );
+ Minz_Session::_param('notification', $notif);
+ }
+
+ Minz_Request::forward(array('c' => 'user', 'a' => 'manage'), true);
+ }
+}
diff --git a/app/Controllers/usersController.php b/app/Controllers/usersController.php
deleted file mode 100644
index 11862ce27..000000000
--- a/app/Controllers/usersController.php
+++ /dev/null
@@ -1,210 +0,0 @@
- array(_t('access_denied')))
- );
- }
- }
-
- /**
- * This action display the user configuration page
- */
- public function indexAction() {
- Minz_View::prependTitle(_t('users') . ' · ');
- }
-
- public function authAction() {
- if (Minz_Request::isPost()) {
- $ok = true;
-
- $passwordPlain = Minz_Request::param('passwordPlain', '', true);
- if ($passwordPlain != '') {
- Minz_Request::_param('passwordPlain'); //Discard plain-text password ASAP
- $_POST['passwordPlain'] = '';
- if (!function_exists('password_hash')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
- $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
- $passwordPlain = '';
- $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
- $ok &= ($passwordHash != '');
- $this->view->conf->_passwordHash($passwordHash);
- }
- Minz_Session::_param('passwordHash', $this->view->conf->passwordHash);
-
- $passwordPlain = Minz_Request::param('apiPasswordPlain', '', true);
- if ($passwordPlain != '') {
- if (!function_exists('password_hash')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
- $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
- $passwordPlain = '';
- $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
- $ok &= ($passwordHash != '');
- $this->view->conf->_apiPasswordHash($passwordHash);
- }
-
- if (FreshRSS_Auth::hasAccess('admin')) {
- $this->view->conf->_mail_login(Minz_Request::param('mail_login', '', true));
- }
- $email = $this->view->conf->mail_login;
- Minz_Session::_param('mail', $email);
-
- $ok &= $this->view->conf->save();
-
- if ($email != '') {
- $personaFile = DATA_PATH . '/persona/' . $email . '.txt';
- @unlink($personaFile);
- $ok &= (file_put_contents($personaFile, Minz_Session::param('currentUser', '_')) !== false);
- }
-
- if (FreshRSS_Auth::hasAccess('admin')) {
- $current_token = $this->view->conf->token;
- $token = Minz_Request::param('token', $current_token);
- $this->view->conf->_token($token);
- $ok &= $this->view->conf->save();
-
- $anon = Minz_Request::param('anon_access', false);
- $anon = ((bool)$anon) && ($anon !== 'no');
- $anon_refresh = Minz_Request::param('anon_refresh', false);
- $anon_refresh = ((bool)$anon_refresh) && ($anon_refresh !== 'no');
- $auth_type = Minz_Request::param('auth_type', 'none');
- $unsafe_autologin = Minz_Request::param('unsafe_autologin', false);
- $api_enabled = Minz_Request::param('api_enabled', false);
- if ($anon != Minz_Configuration::allowAnonymous() ||
- $auth_type != Minz_Configuration::authType() ||
- $anon_refresh != Minz_Configuration::allowAnonymousRefresh() ||
- $unsafe_autologin != Minz_Configuration::unsafeAutologinEnabled() ||
- $api_enabled != Minz_Configuration::apiEnabled()) {
-
- Minz_Configuration::_authType($auth_type);
- Minz_Configuration::_allowAnonymous($anon);
- Minz_Configuration::_allowAnonymousRefresh($anon_refresh);
- Minz_Configuration::_enableAutologin($unsafe_autologin);
- Minz_Configuration::_enableApi($api_enabled);
- $ok &= Minz_Configuration::writeFile();
- }
- }
-
- invalidateHttpCache();
-
- $notif = array(
- 'type' => $ok ? 'good' : 'bad',
- 'content' => _t($ok ? 'configuration_updated' : 'error_occurred')
- );
- Minz_Session::_param('notification', $notif);
- }
- Minz_Request::forward(array('c' => 'users', 'a' => 'index'), true);
- }
-
- public function createAction() {
- if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
- $db = Minz_Configuration::dataBase();
- require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
-
- $new_user_language = Minz_Request::param('new_user_language', $this->view->conf->language);
- if (!in_array($new_user_language, $this->view->conf->availableLanguages())) {
- $new_user_language = $this->view->conf->language;
- }
-
- $new_user_name = Minz_Request::param('new_user_name');
- $ok = ($new_user_name != '') && ctype_alnum($new_user_name);
-
- if ($ok) {
- $ok &= (strcasecmp($new_user_name, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to alter the default user
-
- $ok &= !in_array(strtoupper($new_user_name), array_map('strtoupper', listUsers())); //Not an existing user, case-insensitive
-
- $configPath = DATA_PATH . '/' . $new_user_name . '_user.php';
- $ok &= !file_exists($configPath);
- }
- if ($ok) {
-
- $passwordPlain = Minz_Request::param('new_user_passwordPlain', '', true);
- $passwordHash = '';
- if ($passwordPlain != '') {
- Minz_Request::_param('new_user_passwordPlain'); //Discard plain-text password ASAP
- $_POST['new_user_passwordPlain'] = '';
- if (!function_exists('password_hash')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
- $passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
- $passwordPlain = '';
- $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
- $ok &= ($passwordHash != '');
- }
- if (empty($passwordHash)) {
- $passwordHash = '';
- }
-
- $new_user_email = filter_var($_POST['new_user_email'], FILTER_VALIDATE_EMAIL);
- if (empty($new_user_email)) {
- $new_user_email = '';
- } else {
- $personaFile = DATA_PATH . '/persona/' . $new_user_email . '.txt';
- @unlink($personaFile);
- $ok &= (file_put_contents($personaFile, $new_user_name) !== false);
- }
- }
- if ($ok) {
- $config_array = array(
- 'language' => $new_user_language,
- 'passwordHash' => $passwordHash,
- 'mail_login' => $new_user_email,
- );
- $ok &= (file_put_contents($configPath, "createUser($new_user_name);
- }
- invalidateHttpCache();
-
- $notif = array(
- 'type' => $ok ? 'good' : 'bad',
- 'content' => _t($ok ? 'user_created' : 'error_occurred', $new_user_name)
- );
- Minz_Session::_param('notification', $notif);
- }
- Minz_Request::forward(array('c' => 'users', 'a' => 'index'), true);
- }
-
- public function deleteAction() {
- if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
- $db = Minz_Configuration::dataBase();
- require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
-
- $username = Minz_Request::param('username');
- $ok = ctype_alnum($username);
-
- if ($ok) {
- $ok &= (strcasecmp($username, Minz_Configuration::defaultUser()) !== 0); //It is forbidden to delete the default user
- }
- if ($ok) {
- $configPath = DATA_PATH . '/' . $username . '_user.php';
- $ok &= file_exists($configPath);
- }
- if ($ok) {
- $userDAO = new FreshRSS_UserDAO();
- $ok &= $userDAO->deleteUser($username);
- $ok &= unlink($configPath);
- //TODO: delete Persona file
- }
- invalidateHttpCache();
-
- $notif = array(
- 'type' => $ok ? 'good' : 'bad',
- 'content' => _t($ok ? 'user_deleted' : 'error_occurred', $username)
- );
- Minz_Session::_param('notification', $notif);
- }
- Minz_Request::forward(array('c' => 'users', 'a' => 'index'), true);
- }
-}
diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml
index 59846a7c8..7a9d0d839 100644
--- a/app/layout/aside_configure.phtml
+++ b/app/layout/aside_configure.phtml
@@ -19,10 +19,18 @@
-
-
+
+
+
+
+
+
+
+
diff --git a/app/layout/header.phtml b/app/layout/header.phtml
index deb21edc9..7e7c1b477 100644
--- a/app/layout/header.phtml
+++ b/app/layout/header.phtml
@@ -63,8 +63,10 @@ if (Minz_Configuration::canLogIn()) {
-
+
+
+
diff --git a/app/views/auth/index.phtml b/app/views/auth/index.phtml
new file mode 100644
index 000000000..c37a7aef6
--- /dev/null
+++ b/app/views/auth/index.phtml
@@ -0,0 +1,84 @@
+partial('aside_configure'); ?>
+
+
diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml
new file mode 100644
index 000000000..03746cabb
--- /dev/null
+++ b/app/views/user/manage.phtml
@@ -0,0 +1,76 @@
+partial('aside_configure'); ?>
+
+
diff --git a/app/views/user/profil.phtml b/app/views/user/profil.phtml
new file mode 100644
index 000000000..a74c7b6f8
--- /dev/null
+++ b/app/views/user/profil.phtml
@@ -0,0 +1,59 @@
+partial('aside_configure'); ?>
+
+
diff --git a/app/views/users/index.phtml b/app/views/users/index.phtml
deleted file mode 100644
index f1cdf01a3..000000000
--- a/app/views/users/index.phtml
+++ /dev/null
@@ -1,211 +0,0 @@
-partial('aside_configure'); ?>
-
-
--
cgit v1.2.3
From 1a22a87fb1b1fcb61d201de399c33c2185dc1f6e Mon Sep 17 00:00:00 2001
From: Marien Fressinaud
Date: Mon, 20 Oct 2014 18:45:22 +0200
Subject: Use FreshRSS_Context::$conf only
- Replace $this->view->conf in controllers
- Replace $this->conf in views
---
app/Controllers/authController.php | 6 +-
app/Controllers/categoryController.php | 8 +--
app/Controllers/configureController.php | 92 +++++++++++++++---------------
app/Controllers/entryController.php | 6 +-
app/Controllers/feedController.php | 18 +++---
app/Controllers/importExportController.php | 4 +-
app/Controllers/indexController.php | 8 +--
app/Controllers/javascriptController.php | 2 +-
app/Controllers/userController.php | 18 +++---
app/FreshRSS.php | 2 -
app/layout/aside_flux.phtml | 8 +--
app/layout/layout.phtml | 2 +-
app/layout/nav_menu.phtml | 14 ++---
app/views/auth/index.phtml | 4 +-
app/views/configure/archiving.phtml | 10 ++--
app/views/configure/display.phtml | 30 +++++-----
app/views/configure/queries.phtml | 4 +-
app/views/configure/reading.phtml | 42 +++++++-------
app/views/configure/sharing.phtml | 6 +-
app/views/configure/shortcut.phtml | 2 +-
app/views/helpers/javascript_vars.phtml | 16 +++---
app/views/helpers/pagination.phtml | 2 +-
app/views/helpers/view/global_view.phtml | 6 +-
app/views/helpers/view/normal_view.phtml | 30 +++++-----
app/views/helpers/view/reader_view.phtml | 4 +-
app/views/user/manage.phtml | 6 +-
app/views/user/profil.phtml | 2 +-
27 files changed, 175 insertions(+), 177 deletions(-)
(limited to 'app/views/auth')
diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php
index d4b65d849..4af39cb71 100644
--- a/app/Controllers/authController.php
+++ b/app/Controllers/authController.php
@@ -26,10 +26,10 @@ class FreshRSS_auth_Controller extends Minz_ActionController {
if (Minz_Request::isPost()) {
$ok = true;
- $current_token = $this->view->conf->token;
+ $current_token = FreshRSS_Context::$conf->token;
$token = Minz_Request::param('token', $current_token);
- $this->view->conf->_token($token);
- $ok &= $this->view->conf->save();
+ FreshRSS_Context::$conf->_token($token);
+ $ok &= FreshRSS_Context::$conf->save();
$anon = Minz_Request::param('anon_access', false);
$anon = ((bool)$anon) && ($anon !== 'no');
diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php
index 537a2b210..977ce51be 100644
--- a/app/Controllers/categoryController.php
+++ b/app/Controllers/categoryController.php
@@ -136,8 +136,8 @@ class FreshRSS_category_Controller extends Minz_ActionController {
}
// Remove related queries.
- $this->view->conf->remove_query_by_get('c_' . $id);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->remove_query_by_get('c_' . $id);
+ FreshRSS_Context::$conf->save();
Minz_Request::good(_t('category_deleted'), $url_redirect);
}
@@ -172,9 +172,9 @@ class FreshRSS_category_Controller extends Minz_ActionController {
// Remove related queries
foreach ($feeds as $feed) {
- $this->view->conf->remove_query_by_get('f_' . $feed->id());
+ FreshRSS_Context::$conf->remove_query_by_get('f_' . $feed->id());
}
- $this->view->conf->save();
+ FreshRSS_Context::$conf->save();
Minz_Request::good(_t('category_emptied'), $url_redirect);
} else {
diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php
index fb8c1466e..8a9dcdc62 100755
--- a/app/Controllers/configureController.php
+++ b/app/Controllers/configureController.php
@@ -44,23 +44,23 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
*/
public function displayAction() {
if (Minz_Request::isPost()) {
- $this->view->conf->_language(Minz_Request::param('language', 'en'));
- $this->view->conf->_theme(Minz_Request::param('theme', FreshRSS_Themes::$defaultTheme));
- $this->view->conf->_content_width(Minz_Request::param('content_width', 'thin'));
- $this->view->conf->_topline_read(Minz_Request::param('topline_read', false));
- $this->view->conf->_topline_favorite(Minz_Request::param('topline_favorite', false));
- $this->view->conf->_topline_date(Minz_Request::param('topline_date', false));
- $this->view->conf->_topline_link(Minz_Request::param('topline_link', false));
- $this->view->conf->_bottomline_read(Minz_Request::param('bottomline_read', false));
- $this->view->conf->_bottomline_favorite(Minz_Request::param('bottomline_favorite', false));
- $this->view->conf->_bottomline_sharing(Minz_Request::param('bottomline_sharing', false));
- $this->view->conf->_bottomline_tags(Minz_Request::param('bottomline_tags', false));
- $this->view->conf->_bottomline_date(Minz_Request::param('bottomline_date', false));
- $this->view->conf->_bottomline_link(Minz_Request::param('bottomline_link', false));
- $this->view->conf->_html5_notif_timeout(Minz_Request::param('html5_notif_timeout', 0));
- $this->view->conf->save();
-
- Minz_Session::_param('language', $this->view->conf->language);
+ FreshRSS_Context::$conf->_language(Minz_Request::param('language', 'en'));
+ FreshRSS_Context::$conf->_theme(Minz_Request::param('theme', FreshRSS_Themes::$defaultTheme));
+ FreshRSS_Context::$conf->_content_width(Minz_Request::param('content_width', 'thin'));
+ FreshRSS_Context::$conf->_topline_read(Minz_Request::param('topline_read', false));
+ FreshRSS_Context::$conf->_topline_favorite(Minz_Request::param('topline_favorite', false));
+ FreshRSS_Context::$conf->_topline_date(Minz_Request::param('topline_date', false));
+ FreshRSS_Context::$conf->_topline_link(Minz_Request::param('topline_link', false));
+ FreshRSS_Context::$conf->_bottomline_read(Minz_Request::param('bottomline_read', false));
+ FreshRSS_Context::$conf->_bottomline_favorite(Minz_Request::param('bottomline_favorite', false));
+ FreshRSS_Context::$conf->_bottomline_sharing(Minz_Request::param('bottomline_sharing', false));
+ FreshRSS_Context::$conf->_bottomline_tags(Minz_Request::param('bottomline_tags', false));
+ FreshRSS_Context::$conf->_bottomline_date(Minz_Request::param('bottomline_date', false));
+ FreshRSS_Context::$conf->_bottomline_link(Minz_Request::param('bottomline_link', false));
+ FreshRSS_Context::$conf->_html5_notif_timeout(Minz_Request::param('html5_notif_timeout', 0));
+ FreshRSS_Context::$conf->save();
+
+ Minz_Session::_param('language', FreshRSS_Context::$conf->language);
Minz_Translate::reset();
invalidateHttpCache();
@@ -102,27 +102,27 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
*/
public function readingAction() {
if (Minz_Request::isPost()) {
- $this->view->conf->_posts_per_page(Minz_Request::param('posts_per_page', 10));
- $this->view->conf->_view_mode(Minz_Request::param('view_mode', 'normal'));
- $this->view->conf->_default_view((int)Minz_Request::param('default_view', FreshRSS_Entry::STATE_ALL));
- $this->view->conf->_auto_load_more(Minz_Request::param('auto_load_more', false));
- $this->view->conf->_display_posts(Minz_Request::param('display_posts', false));
- $this->view->conf->_display_categories(Minz_Request::param('display_categories', false));
- $this->view->conf->_hide_read_feeds(Minz_Request::param('hide_read_feeds', false));
- $this->view->conf->_onread_jump_next(Minz_Request::param('onread_jump_next', false));
- $this->view->conf->_lazyload(Minz_Request::param('lazyload', false));
- $this->view->conf->_sticky_post(Minz_Request::param('sticky_post', false));
- $this->view->conf->_reading_confirm(Minz_Request::param('reading_confirm', false));
- $this->view->conf->_sort_order(Minz_Request::param('sort_order', 'DESC'));
- $this->view->conf->_mark_when(array(
+ FreshRSS_Context::$conf->_posts_per_page(Minz_Request::param('posts_per_page', 10));
+ FreshRSS_Context::$conf->_view_mode(Minz_Request::param('view_mode', 'normal'));
+ FreshRSS_Context::$conf->_default_view((int)Minz_Request::param('default_view', FreshRSS_Entry::STATE_ALL));
+ FreshRSS_Context::$conf->_auto_load_more(Minz_Request::param('auto_load_more', false));
+ FreshRSS_Context::$conf->_display_posts(Minz_Request::param('display_posts', false));
+ FreshRSS_Context::$conf->_display_categories(Minz_Request::param('display_categories', false));
+ FreshRSS_Context::$conf->_hide_read_feeds(Minz_Request::param('hide_read_feeds', false));
+ FreshRSS_Context::$conf->_onread_jump_next(Minz_Request::param('onread_jump_next', false));
+ FreshRSS_Context::$conf->_lazyload(Minz_Request::param('lazyload', false));
+ FreshRSS_Context::$conf->_sticky_post(Minz_Request::param('sticky_post', false));
+ FreshRSS_Context::$conf->_reading_confirm(Minz_Request::param('reading_confirm', false));
+ FreshRSS_Context::$conf->_sort_order(Minz_Request::param('sort_order', 'DESC'));
+ FreshRSS_Context::$conf->_mark_when(array(
'article' => Minz_Request::param('mark_open_article', false),
'site' => Minz_Request::param('mark_open_site', false),
'scroll' => Minz_Request::param('mark_scroll', false),
'reception' => Minz_Request::param('mark_upon_reception', false),
));
- $this->view->conf->save();
+ FreshRSS_Context::$conf->save();
- Minz_Session::_param('language', $this->view->conf->language);
+ Minz_Session::_param('language', FreshRSS_Context::$conf->language);
Minz_Translate::reset();
invalidateHttpCache();
@@ -143,8 +143,8 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
public function sharingAction() {
if (Minz_Request::isPost()) {
$params = Minz_Request::params();
- $this->view->conf->_sharing($params['share']);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->_sharing($params['share']);
+ FreshRSS_Context::$conf->save();
invalidateHttpCache();
Minz_Request::good(_t('configuration_updated'),
@@ -185,8 +185,8 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
}
}
- $this->view->conf->_shortcuts($shortcuts_ok);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->_shortcuts($shortcuts_ok);
+ FreshRSS_Context::$conf->save();
invalidateHttpCache();
Minz_Request::good(_t('shortcuts_updated'),
@@ -213,10 +213,10 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
*/
public function archivingAction() {
if (Minz_Request::isPost()) {
- $this->view->conf->_old_entries(Minz_Request::param('old_entries', 3));
- $this->view->conf->_keep_history_default(Minz_Request::param('keep_history_default', 0));
- $this->view->conf->_ttl_default(Minz_Request::param('ttl_default', -2));
- $this->view->conf->save();
+ FreshRSS_Context::$conf->_old_entries(Minz_Request::param('old_entries', 3));
+ FreshRSS_Context::$conf->_keep_history_default(Minz_Request::param('keep_history_default', 0));
+ FreshRSS_Context::$conf->_ttl_default(Minz_Request::param('ttl_default', -2));
+ FreshRSS_Context::$conf->save();
invalidateHttpCache();
Minz_Request::good(_t('configuration_updated'),
@@ -253,8 +253,8 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
$query['name'] = _t('query_number', $key + 1);
}
}
- $this->view->conf->_queries($queries);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->_queries($queries);
+ FreshRSS_Context::$conf->save();
Minz_Request::good(_t('configuration_updated'),
array('c' => 'configure', 'a' => 'queries'));
@@ -262,7 +262,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
$this->view->query_get = array();
$cat_dao = new FreshRSS_CategoryDAO();
$feed_dao = FreshRSS_Factory::createFeedDao();
- foreach ($this->view->conf->queries as $key => $query) {
+ foreach (FreshRSS_Context::$conf->queries as $key => $query) {
if (!isset($query['get'])) {
continue;
}
@@ -330,7 +330,7 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
*/
public function addQueryAction() {
$whitelist = array('get', 'order', 'name', 'search', 'state');
- $queries = $this->view->conf->queries;
+ $queries = FreshRSS_Context::$conf->queries;
$query = Minz_Request::params();
$query['name'] = _t('query_number', count($queries) + 1);
foreach ($query as $key => $value) {
@@ -342,8 +342,8 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
$query['state'] -= FreshRSS_Entry::STATE_STRICT;
}
$queries[] = $query;
- $this->view->conf->_queries($queries);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->_queries($queries);
+ FreshRSS_Context::$conf->save();
Minz_Request::good(_t('query_created', $query['name']),
array('c' => 'configure', 'a' => 'queries'));
diff --git a/app/Controllers/entryController.php b/app/Controllers/entryController.php
index a1dfacb4d..449029648 100755
--- a/app/Controllers/entryController.php
+++ b/app/Controllers/entryController.php
@@ -21,7 +21,7 @@ class FreshRSS_entry_Controller extends Minz_ActionController {
// the end.
$this->params = array();
$output = Minz_Request::param('output', '');
- if ($output != '' && $this->view->conf->view_mode !== $output) {
+ if ($output != '' && FreshRSS_Context::$conf->view_mode !== $output) {
$this->params['output'] = $output;
}
@@ -167,7 +167,7 @@ class FreshRSS_entry_Controller extends Minz_ActionController {
public function purgeAction() {
@set_time_limit(300);
- $nb_month_old = max($this->view->conf->old_entries, 1);
+ $nb_month_old = max(FreshRSS_Context::$conf->old_entries, 1);
$date_min = time() - (3600 * 24 * 30 * $nb_month_old);
$feedDAO = FreshRSS_Factory::createFeedDao();
@@ -181,7 +181,7 @@ class FreshRSS_entry_Controller extends Minz_ActionController {
if ($feed_history == -2) {
// TODO: -2 must be a constant!
// -2 means we take the default value from configuration
- $feed_history = $this->view->conf->keep_history_default;
+ $feed_history = FreshRSS_Context::$conf->keep_history_default;
}
if ($feed_history >= 0) {
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php
index 2a7238eaf..c2859edf4 100755
--- a/app/Controllers/feedController.php
+++ b/app/Controllers/feedController.php
@@ -14,7 +14,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
// Token is useful in the case that anonymous refresh is forbidden
// and CRON task cannot be used with php command so the user can
// set a CRON task to refresh his feeds by using token inside url
- $token = $this->view->conf->token;
+ $token = FreshRSS_Context::$conf->token;
$token_param = Minz_Request::param('token', '');
$token_is_ok = ($token != '' && $token == $token_param);
$action = Minz_Request::actionName();
@@ -154,14 +154,14 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$feed->_id($id);
$feed->faviconPrepare();
- $is_read = $this->view->conf->mark_when['reception'] ? 1 : 0;
+ $is_read = FreshRSS_Context::$conf->mark_when['reception'] ? 1 : 0;
$entryDAO = FreshRSS_Factory::createEntryDao();
// We want chronological order and SimplePie uses reverse order.
$entries = array_reverse($feed->entries());
// Calculate date of oldest entries we accept in DB.
- $nb_month_old = $this->view->conf->old_entries;
+ $nb_month_old = FreshRSS_Context::$conf->old_entries;
$date_min = time() - (3600 * 24 * 30 * $nb_month_old);
// Use a shared statement and a transaction to improve a LOT the
@@ -265,15 +265,15 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$feeds[] = $feed;
}
} else {
- $feeds = $feedDAO->listFeedsOrderUpdate($this->view->conf->ttl_default);
+ $feeds = $feedDAO->listFeedsOrderUpdate(FreshRSS_Context::$conf->ttl_default);
}
// Calculate date of oldest entries we accept in DB.
- $nb_month_old = max($this->view->conf->old_entries, 1);
+ $nb_month_old = max(FreshRSS_Context::$conf->old_entries, 1);
$date_min = time() - (3600 * 24 * 30 * $nb_month_old);
$updated_feeds = 0;
- $is_read = $this->view->conf->mark_when['reception'] ? 1 : 0;
+ $is_read = FreshRSS_Context::$conf->mark_when['reception'] ? 1 : 0;
foreach ($feeds as $feed) {
if (!$feed->lock()) {
Minz_Log::notice('Feed already being actualized: ' . $feed->url());
@@ -294,7 +294,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
if ($feed_history == -2) {
// TODO: -2 must be a constant!
// -2 means we take the default value from configuration
- $feed_history = $this->view->conf->keep_history_default;
+ $feed_history = FreshRSS_Context::$conf->keep_history_default;
}
// We want chronological order and SimplePie uses reverse order.
@@ -470,8 +470,8 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
// TODO: Delete old favicon
// Remove related queries
- $this->view->conf->remove_query_by_get('f_' . $id);
- $this->view->conf->save();
+ FreshRSS_Context::$conf->remove_query_by_get('f_' . $id);
+ FreshRSS_Context::$conf->save();
Minz_Request::good(_t('feed_deleted'), $redirect_url);
} else {
diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php
index aaac1b68b..ab277e688 100644
--- a/app/Controllers/importExportController.php
+++ b/app/Controllers/importExportController.php
@@ -289,7 +289,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
return true;
}
- $is_read = $this->view->conf->mark_when['reception'] ? 1 : 0;
+ $is_read = FreshRSS_Context::$conf->mark_when['reception'] ? 1 : 0;
$google_compliant = strpos($article_object['id'], 'com.google') !== false;
@@ -484,7 +484,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
$this->view->type = 'feed/' . $feed->id();
$this->view->entries = $this->entryDAO->listWhere(
'f', $feed->id(), FreshRSS_Entry::STATE_ALL, 'ASC',
- $this->view->conf->posts_per_page
+ FreshRSS_Context::$conf->posts_per_page
);
$this->view->feed = $feed;
}
diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php
index 5b490e672..f994e257c 100755
--- a/app/Controllers/indexController.php
+++ b/app/Controllers/indexController.php
@@ -5,7 +5,7 @@ class FreshRSS_index_Controller extends Minz_ActionController {
public function indexAction() {
$output = Minz_Request::param('output');
- $token = $this->view->conf->token;
+ $token = FreshRSS_Context::$conf->token;
// check if user is logged in
if (!FreshRSS_Auth::hasAccess() && !Minz_Configuration::allowAnonymous()) {
@@ -76,11 +76,11 @@ class FreshRSS_index_Controller extends Minz_ActionController {
);
// On récupère les différents éléments de filtrage
- $this->view->state = Minz_Request::param('state', $this->view->conf->default_view);
+ $this->view->state = Minz_Request::param('state', FreshRSS_Context::$conf->default_view);
$state_param = Minz_Request::param('state', null);
$filter = Minz_Request::param('search', '');
- $this->view->order = $order = Minz_Request::param('order', $this->view->conf->sort_order);
- $nb = Minz_Request::param('nb', $this->view->conf->posts_per_page);
+ $this->view->order = $order = Minz_Request::param('order', FreshRSS_Context::$conf->sort_order);
+ $nb = Minz_Request::param('nb', FreshRSS_Context::$conf->posts_per_page);
$first = Minz_Request::param('next', '');
$ajax_request = Minz_Request::param('ajax', false);
diff --git a/app/Controllers/javascriptController.php b/app/Controllers/javascriptController.php
index 14e6f36de..62f413989 100755
--- a/app/Controllers/javascriptController.php
+++ b/app/Controllers/javascriptController.php
@@ -8,7 +8,7 @@ class FreshRSS_javascript_Controller extends Minz_ActionController {
public function actualizeAction() {
header('Content-Type: text/javascript; charset=UTF-8');
$feedDAO = FreshRSS_Factory::createFeedDao();
- $this->view->feeds = $feedDAO->listFeedsOrderUpdate($this->view->conf->ttl_default);
+ $this->view->feeds = $feedDAO->listFeedsOrderUpdate(FreshRSS_Context::$conf->ttl_default);
}
public function nbUnreadsPerFeedAction() {
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index d5c90a382..61d33437d 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -42,9 +42,9 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$passwordPlain = '';
$passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
$ok &= ($passwordHash != '');
- $this->view->conf->_passwordHash($passwordHash);
+ FreshRSS_Context::$conf->_passwordHash($passwordHash);
}
- Minz_Session::_param('passwordHash', $this->view->conf->passwordHash);
+ Minz_Session::_param('passwordHash', FreshRSS_Context::$conf->passwordHash);
$passwordPlain = Minz_Request::param('apiPasswordPlain', '', true);
if ($passwordPlain != '') {
@@ -55,17 +55,17 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$passwordPlain = '';
$passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
$ok &= ($passwordHash != '');
- $this->view->conf->_apiPasswordHash($passwordHash);
+ FreshRSS_Context::$conf->_apiPasswordHash($passwordHash);
}
// TODO: why do we need of hasAccess here?
if (FreshRSS_Auth::hasAccess('admin')) {
- $this->view->conf->_mail_login(Minz_Request::param('mail_login', '', true));
+ FreshRSS_Context::$conf->_mail_login(Minz_Request::param('mail_login', '', true));
}
- $email = $this->view->conf->mail_login;
+ $email = FreshRSS_Context::$conf->mail_login;
Minz_Session::_param('mail', $email);
- $ok &= $this->view->conf->save();
+ $ok &= FreshRSS_Context::$conf->save();
if ($email != '') {
$personaFile = DATA_PATH . '/persona/' . $email . '.txt';
@@ -113,9 +113,9 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$db = Minz_Configuration::dataBase();
require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
- $new_user_language = Minz_Request::param('new_user_language', $this->view->conf->language);
- if (!in_array($new_user_language, $this->view->conf->availableLanguages())) {
- $new_user_language = $this->view->conf->language;
+ $new_user_language = Minz_Request::param('new_user_language', FreshRSS_Context::$conf->language);
+ if (!in_array($new_user_language, FreshRSS_Context::$conf->availableLanguages())) {
+ $new_user_language = FreshRSS_Context::$conf->language;
}
$new_user_name = Minz_Request::param('new_user_name');
diff --git a/app/FreshRSS.php b/app/FreshRSS.php
index e1399ad78..752b14e31 100644
--- a/app/FreshRSS.php
+++ b/app/FreshRSS.php
@@ -24,9 +24,7 @@ class FreshRSS extends Minz_FrontController {
}
// Load context and configuration.
- // TODO: remove $this->view->conf variable which is contained in context
FreshRSS_Context::init();
- Minz_View::_param('conf', FreshRSS_Context::$conf);
$this->loadParamsView();
$this->loadStylesAndScripts();
diff --git a/app/layout/aside_flux.phtml b/app/layout/aside_flux.phtml
index a66be2ed9..114ccbf56 100644
--- a/app/layout/aside_flux.phtml
+++ b/app/layout/aside_flux.phtml
@@ -1,4 +1,4 @@
-