From eb8c4d21af44430390d02d1557950b38352581d3 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 5 Jan 2014 20:42:19 +0100 Subject: install.php : stripslashes pour migration depuis v0.6 https://github.com/marienfressinaud/FreshRSS/issues/299 --- p/i/install.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'p/i/install.php') diff --git a/p/i/install.php b/p/i/install.php index 85dfa3a66..4f2d00848 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -423,8 +423,9 @@ function checkStep0 () { if (file_exists(DATA_PATH . '/config.php')) { $ini_array = include(DATA_PATH . '/config.php'); - } elseif (file_exists(DATA_PATH . '/application.ini')) { + } elseif (file_exists(DATA_PATH . '/application.ini')) { //v0.6 $ini_array = parse_ini_file(DATA_PATH . '/application.ini', true); + $ini_array['general']['title'] = empty($ini_array['general']['title']) ? '' : stripslashes($ini_array['general']['title']); } else { $ini_array = null; } -- cgit v1.2.3 From 70c6ba903d9c69adda173917b07e503df07ae591 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sun, 5 Jan 2014 21:55:15 +0100 Subject: Meilleure mise-à-jour avec Persona depuis v0.6 vers v0.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/marienfressinaud/FreshRSS/issues/347 * Conserve l'information sur l'utilisation de Persona lors d'une mise à jour depuis v0.6 vers v0.7. * Idem pour la lecture anonyme * Les droits sur le répertoire persona sont testés * Les tokens ne sont pas migrés ni testés pour l'instant https://github.com/marienfressinaud/FreshRSS/issues/327 --- app/i18n/install.en.php | 1 + app/i18n/install.fr.php | 1 + p/i/install.php | 20 ++++++++++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) (limited to 'p/i/install.php') diff --git a/app/i18n/install.en.php b/app/i18n/install.en.php index 4d8006977..8145abffa 100644 --- a/app/i18n/install.en.php +++ b/app/i18n/install.en.php @@ -40,6 +40,7 @@ return array ( 'log_is_ok' => 'Permissions on logs directory are good', 'favicons_is_ok' => 'Permissions on favicons directory are good', 'data_is_ok' => 'Permissions on data directory are good', + 'persona_is_ok' => 'Permissions on Mozilla Persona directory are good', 'file_is_nok' => 'Check permissions on %s directory. HTTP server must have rights to write into', 'fix_errors_before' => 'Fix errors before skip to the next step.', diff --git a/app/i18n/install.fr.php b/app/i18n/install.fr.php index e9dba7c23..3211ddf19 100644 --- a/app/i18n/install.fr.php +++ b/app/i18n/install.fr.php @@ -40,6 +40,7 @@ return array ( 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', 'favicons_is_ok' => 'Les droits sur le répertoire des favicons sont bons', 'data_is_ok' => 'Les droits sur le répertoire de data sont bons', + 'persona_is_ok' => 'Les droits sur le répertoire de Mozilla Persona sont bons', 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire %s. Le serveur HTTP doit être capable d’écrire dedans', 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.', diff --git a/p/i/install.php b/p/i/install.php index 4f2d00848..cd15c35f4 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -213,6 +213,8 @@ function saveStep3 () { 'base_url' => '', 'title' => $_SESSION['title'], 'default_user' => $_SESSION['default_user'], + 'auth_type' => $_SESSION['auth_type'], + 'allow_anonymous' => $_SESSION['allow_anonymous'], ), 'db' => array( 'type' => $_SESSION['bd_type'], @@ -433,7 +435,7 @@ function checkStep0 () { if ($ini_array) { $ini_general = isset($ini_array['general']) ? $ini_array['general'] : null; if ($ini_general) { - $keys = array('environment', 'salt', 'title', 'default_user'); + $keys = array('environment', 'salt', 'title', 'default_user', 'allow_anonymous', 'auth_type'); foreach ($keys as $key) { if ((empty($_SESSION[$key])) && isset($ini_general[$key])) { $_SESSION[$key] = $ini_general[$key]; @@ -455,6 +457,12 @@ function checkStep0 () { $userConfig = include(DATA_PATH . '/' . $_SESSION['default_user'] . '_user.php'); } elseif (file_exists(DATA_PATH . '/Configuration.array.php')) { $userConfig = include(DATA_PATH . '/Configuration.array.php'); //v0.6 + if (empty($_SESSION['auth_type'])) { + $_SESSION['auth_type'] = empty($userConfig['mail_login']) ? 'none' : 'persona'; + } + if (!isset($_SESSION['allow_anonymous'])) { + $_SESSION['allow_anonymous'] = empty($userConfig['anon_access']) ? false : ($userConfig['anon_access'] === 'yes'); + } } else { $userConfig = array(); } @@ -487,6 +495,7 @@ function checkStep1 () { $cache = CACHE_PATH && is_writable (CACHE_PATH); $log = LOG_PATH && is_writable (LOG_PATH); $favicons = is_writable (DATA_PATH . '/favicons'); + $persona = is_writable (DATA_PATH . '/persona'); return array ( 'php' => $php ? 'ok' : 'ko', @@ -500,7 +509,8 @@ function checkStep1 () { 'cache' => $cache ? 'ok' : 'ko', 'log' => $log ? 'ok' : 'ko', 'favicons' => $favicons ? 'ok' : 'ko', - 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $data && $cache && $log && $favicons ? 'ok' : 'ko' + 'persona' => $persona ? 'ok' : 'ko', + 'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $dom && $data && $cache && $log && $favicons && $persona ? 'ok' : 'ko' ); } @@ -710,6 +720,12 @@ function printStep1 () {

+ +

+ +

+ + -- cgit v1.2.3 From 73682777a37ab511291986400d29273866f86fc9 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 13 Jan 2014 23:38:02 +0100 Subject: Install.php Mise à jour nom du thème "Origine" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/marienfressinaud/FreshRSS/issues/120 --- p/i/install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'p/i/install.php') diff --git a/p/i/install.php b/p/i/install.php index cd15c35f4..e81b76c14 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -927,8 +927,8 @@ case 6: <?php echo _t ('freshrss_installation'); ?> - - + + -- cgit v1.2.3 From 3d9d054f43f649863e575ba31138d372a504bc58 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Fri, 17 Jan 2014 22:12:26 +0100 Subject: Mise à jour des noms des thèmes dans install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige https://github.com/marienfressinaud/FreshRSS/issues/327#issuecomment-32630046 (Pas encore testé) --- p/i/install.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'p/i/install.php') diff --git a/p/i/install.php b/p/i/install.php index e81b76c14..08ed9ccb9 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -466,6 +466,19 @@ function checkStep0 () { } else { $userConfig = array(); } + if (isset($userConfig['theme'])) { + switch (strtolower($userConfig['theme'])) { + case 'default': //v0.6 + $userConfig['theme'] = 'Origine'; + break; + case 'flat-design': //v0.6 + $userConfig['theme'] = 'Flat'; + break; + case 'default_dark': //v0.6 + $userConfig['theme'] = 'Dark'; + break; + } + } $keys = array('language', 'old_entries', 'mail_login'); foreach ($keys as $key) { -- cgit v1.2.3 From 781d8a717f315525807bfd702cb740248b6087ea Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 18 Jan 2014 00:17:03 +0100 Subject: Choix du type de connexion dans l'installeur + diverses corrections dans l'installeur Adresse une partie de https://github.com/marienfressinaud/FreshRSS/issues/355 --- app/i18n/en.php | 5 +-- app/i18n/fr.php | 5 +-- app/i18n/install.en.php | 2 -- app/i18n/install.fr.php | 2 -- app/views/configure/users.phtml | 4 +-- p/i/install.php | 75 ++++++++++++++++++++++++++++++++--------- 6 files changed, 68 insertions(+), 25 deletions(-) (limited to 'p/i/install.php') diff --git a/app/i18n/en.php b/app/i18n/en.php index c90563036..6dc7a4acf 100644 --- a/app/i18n/en.php +++ b/app/i18n/en.php @@ -160,8 +160,8 @@ return array ( 'think_to_add' => 'Remember to add some RSS feeds!', 'current_user' => 'Current user', - 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', - 'password' =>'Password
(for the Web-form login method)', + 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', + 'password_form' =>'Password
(for the Web-form login method)', 'persona_connection_email' => 'Login mail address
(for Mozilla Persona)', 'allow_anonymous' => 'Allow anonymous reading for the default user (%s)', 'auth_token' => 'Authentication token', @@ -176,6 +176,7 @@ return array ( 'users_list' => 'List of users', 'create_user' => 'Create new user', 'username' => 'Username', + 'password' => 'Password', 'create' => 'Create', 'user_created' => 'User %s has been created', 'user_deleted' => 'User %s has been deleted', diff --git a/app/i18n/fr.php b/app/i18n/fr.php index 37f847f4d..16d93a59a 100644 --- a/app/i18n/fr.php +++ b/app/i18n/fr.php @@ -160,8 +160,8 @@ return array ( 'think_to_add' => 'Pensez à en ajouter !', 'current_user' => 'Utilisateur actuel', - 'password' =>'Mot de passe
(pour connexion par formulaire)', - 'default_user' => 'Nom de l’utilisateur par défaut (16 caractères alphanumériques maximum)', + 'password_form' =>'Mot de passe
(pour connexion par formulaire)', + 'default_user' => 'Nom de l’utilisateur par défaut (16 caractères alphanumériques maximum)', 'persona_connection_email' => 'Adresse courriel de connexion
(pour Mozilla Persona)', 'allow_anonymous' => 'Autoriser la lecture anonyme pour l’utilisateur par défaut (%s)', 'auth_token' => 'Jeton d’identification', @@ -176,6 +176,7 @@ return array ( 'users_list' => 'Liste des utilisateurs', 'create_user' => 'Créer un nouvel utilisateur', 'username' => 'Nom d’utilisateur', + 'password' => 'Mot de passe', 'create' => 'Créer', 'user_created' => 'L’utilisateur %s a été créé', 'user_deleted' => 'L’utilisateur %s a été supprimé', diff --git a/app/i18n/install.en.php b/app/i18n/install.en.php index 24335c6c9..1c24c7d7e 100644 --- a/app/i18n/install.en.php +++ b/app/i18n/install.en.php @@ -53,8 +53,6 @@ return array ( 'bdd_conf_is_ok' => 'Database configuration has been saved.', 'bdd_conf_is_ko' => 'Verify your database information.', 'host' => 'Host', - 'username' => 'Username', - 'password' => 'Password', 'bdd' => 'Database', 'prefix' => 'Table prefix', diff --git a/app/i18n/install.fr.php b/app/i18n/install.fr.php index 554d17587..68927df6d 100644 --- a/app/i18n/install.fr.php +++ b/app/i18n/install.fr.php @@ -53,8 +53,6 @@ return array ( 'bdd_conf_is_ok' => 'La configuration de la base de données a été enregistrée.', 'bdd_conf_is_ko' => 'Vérifiez les informations d’accès à la base de données.', 'host' => 'Hôte', - 'username' => 'Nom utilisateur', - 'password' => 'Mot de passe', 'bdd' => 'Base de données', 'prefix' => 'Préfixe des tables', diff --git a/app/views/configure/users.phtml b/app/views/configure/users.phtml index 0419df747..602dfaf62 100644 --- a/app/views/configure/users.phtml +++ b/app/views/configure/users.phtml @@ -18,7 +18,7 @@
- +
@@ -140,7 +140,7 @@
- +
diff --git a/p/i/install.php b/p/i/install.php index 08ed9ccb9..294231fc0 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -1,5 +1,11 @@ BCRYPT_COST)); + $passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js + $_SESSION['passwordHash'] = $passwordHash; + } $token = ''; if ($_SESSION['mail_login']) { @@ -169,8 +182,10 @@ function saveStep2 () { $config_array = array ( 'language' => $_SESSION['language'], + 'theme' => $_SESSION['theme'], 'old_entries' => $_SESSION['old_entries'], 'mail_login' => $_SESSION['mail_login'], + 'passwordHash' => $_SESSION['passwordHash'], 'token' => $token, ); @@ -214,7 +229,7 @@ function saveStep3 () { 'title' => $_SESSION['title'], 'default_user' => $_SESSION['default_user'], 'auth_type' => $_SESSION['auth_type'], - 'allow_anonymous' => $_SESSION['allow_anonymous'], + 'allow_anonymous' => isset($_SESSION['allow_anonymous']) ? $_SESSION['allow_anonymous'] : false, ), 'db' => array( 'type' => $_SESSION['bd_type'], @@ -466,21 +481,11 @@ function checkStep0 () { } else { $userConfig = array(); } - if (isset($userConfig['theme'])) { - switch (strtolower($userConfig['theme'])) { - case 'default': //v0.6 - $userConfig['theme'] = 'Origine'; - break; - case 'flat-design': //v0.6 - $userConfig['theme'] = 'Flat'; - break; - case 'default_dark': //v0.6 - $userConfig['theme'] = 'Dark'; - break; - } + if (empty($_SESSION['auth_type'])) { //v0.7b + $_SESSION['auth_type'] = ''; } - $keys = array('language', 'old_entries', 'mail_login'); + $keys = array('language', 'theme', 'old_entries', 'mail_login', 'passwordHash'); foreach ($keys as $key) { if ((!isset($_SESSION[$key])) && isset($userConfig[$key])) { $_SESSION[$key] = $userConfig[$key]; @@ -491,6 +496,25 @@ function checkStep0 () { $language = isset ($_SESSION['language']) && isset ($languages[$_SESSION['language']]); + if (empty($_SESSION['passwordHash'])) { //v0.7b + $_SESSION['passwordHash'] = ''; + } + if (empty($_SESSION['theme'])) { + $_SESSION['theme'] = 'Origine'; + } else { + switch (strtolower($_SESSION['theme'])) { + case 'default': //v0.7b + $_SESSION['theme'] = 'Origine'; + break; + case 'flat-design': //v0.7b + $_SESSION['theme'] = 'Flat'; + break; + case 'default_dark': //v0.7b + $_SESSION['theme'] = 'Dark'; + break; + } + } + return array ( 'language' => $language ? 'ok' : 'ko', 'all' => $language ? 'ok' : 'ko' @@ -777,10 +801,31 @@ function printStep2 () {
+
+ +
+ +
+
+ +
+ +
+ + +
+
+
- +
-- cgit v1.2.3 From fb908d45577cd0f156104eb23b4b9859d40b6da2 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 18 Jan 2014 00:34:46 +0100 Subject: Corrige rafraîchissement automatique après mise-à-jour avec Persona ou formulaire MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige https://github.com/marienfressinaud/FreshRSS/issues/327#issuecomment-31958851 --- app/Controllers/feedController.php | 1 + app/views/helpers/javascript_vars.phtml | 3 --- p/i/install.php | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) (limited to 'p/i/install.php') diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index d2117f665..c40b3c400 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -164,6 +164,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $feedDAO = new FreshRSS_FeedDAO (); $entryDAO = new FreshRSS_EntryDAO (); + Minz_Session::_param('actualize_feeds', false); $id = Minz_Request::param ('id'); $force = Minz_Request::param ('force', false); diff --git a/app/views/helpers/javascript_vars.phtml b/app/views/helpers/javascript_vars.phtml index 3fd5580f4..0ecdc1bca 100644 --- a/app/views/helpers/javascript_vars.phtml +++ b/app/views/helpers/javascript_vars.phtml @@ -42,6 +42,3 @@ echo 'str_confirmation="', Minz_Translate::t('confirm_action'), '"', ",\n"; $autoActualise = Minz_Session::param('actualize_feeds', false); echo 'auto_actualize_feeds=', $autoActualise ? 'true' : 'false', ";\n"; -if ($autoActualise) { - Minz_Session::_param('actualize_feeds', false); -} diff --git a/p/i/install.php b/p/i/install.php index 294231fc0..18dfc1449 100644 --- a/p/i/install.php +++ b/p/i/install.php @@ -817,7 +817,7 @@ function printStep2 () {
- +
-- cgit v1.2.3 From 5f0594c630028b8612b57da15bcdf00a932930bc Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 18 Jan 2014 21:26:33 +0100 Subject: Désactive l'identification par formulaire en dessous de PHP 5.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PHP 5.3 est sorti en juin 2009. https://github.com/ircmaxell/password_compat Pour plus de tranquillité (compatibilité et sécurité), il faudrait même désactiver en dessous de PHP 5.3.7 (août 2011) --- CHANGELOG | 1 + README.md | 2 +- app/views/configure/users.phtml | 2 +- p/i/install.php | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) (limited to 'p/i/install.php') diff --git a/CHANGELOG b/CHANGELOG index 9a0ae1f61..f72bd8ff5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ * Nécessite un contrôle d’accès, soit : * par le nouveau mode de connexion par formulaire (nom d’utilisateur + mot de passe) * relativement sûr même sans HTTPS (le mot de passe n’est pas transmis en clair) + * requiert JavaScript et PHP 5.3+ * par HTTP (par exemple sous Apache en créant un fichier ./p/i/.htaccess et .htpasswd) * le nom d’utilisateur HTTP doit correspondre au nom d’utilisateur FreshRSS * par Mozilla Persona, en renseignant l’adresse courriel des utilisateurs diff --git a/README.md b/README.md index 4100a8638..abc40d489 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Privilégiez pour cela des demandes sur GitHub * Serveur modeste, par exemple sous Linux ou Windows * Fonctionne même sur un Raspberry Pi avec des temps de réponse < 1s (testé sur 150 flux, 22k articles, soit 32Mo de données partiellement compressées) * Serveur Web Apache2 ou Nginx (non testé sur les autres) -* PHP 5.2+ (PHP 5.3.4+ recommandé) +* PHP 5.2+ (PHP 5.3.7+ recommandé) * Requis : [PDO_MySQL](http://php.net/pdo-mysql), [cURL](http://php.net/curl), [LibXML](http://php.net/xml), [PCRE](http://php.net/pcre), [ctype](http://php.net/ctype) * Recommandés : [JSON](http://php.net/json), [zlib](http://php.net/zlib), [mbstring](http://php.net/mbstring), [iconv](http://php.net/iconv) * MySQL 5.0.3+ (ou SQLite 3.7.4+ à venir) diff --git a/app/views/configure/users.phtml b/app/views/configure/users.phtml index 3f352f9bf..41129333c 100644 --- a/app/views/configure/users.phtml +++ b/app/views/configure/users.phtml @@ -50,7 +50,7 @@
- + -- cgit v1.2.3