aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2016-10-04 21:11:10 +0200
committerGravatar GitHub <noreply@github.com> 2016-10-04 21:11:10 +0200
commit76c4a9aec1ae6b11efbeda16e639b47b9a5e793f (patch)
tree4b2edaf63eb5dcaa4c3d93f4a9c70101ec147736
parent4d467277058bb016db072b7f30b587fa9347a729 (diff)
parent6a6ae345db5e0f0ac2c9d8fbef4e0272e687b81c (diff)
Merge pull request #1279 from Alkarex/new-user-language
Fix bug language option for new user
-rw-r--r--CHANGELOG.md1
-rw-r--r--app/Controllers/userController.php4
-rw-r--r--app/Models/UserDAO.php41
-rw-r--r--app/views/user/manage.phtml4
4 files changed, 30 insertions, 20 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1327a8cc3..6fcb3410e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@
* Bug fixing
* Correction of bugs related CSRF tokens introduced in version 1.5.0 [#1253](https://github.com/FreshRSS/FreshRSS/issues/1253), [44f22ab](https://github.com/FreshRSS/FreshRSS/pull/1261/commits/d9bf9b2c6f0b2cc9dec3b638841b7e3040dcf46f)
* Fix bug in Global view introduced in version 1.5.0 [#1269](https://github.com/FreshRSS/FreshRSS/pull/1269)
+ * Fix bug not respecting language option for new users [#1273](https://github.com/FreshRSS/FreshRSS/issues/1273)
* SimplePie
* Fix auto-discovery of RSS feeds in Web pages served as `text/xml` [#1264](https://github.com/FreshRSS/FreshRSS/issues/1264)
* Security
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index 0521bc008..c259ffde9 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -121,7 +121,7 @@ class FreshRSS_user_Controller extends Minz_ActionController {
$new_user_language = Minz_Request::param('new_user_language', FreshRSS_Context::$user_conf->language);
$languages = Minz_Translate::availableLanguages();
- if (!isset($languages[$new_user_language])) {
+ if (!in_array($new_user_language, $languages)) {
$new_user_language = FreshRSS_Context::$user_conf->language;
}
@@ -165,7 +165,7 @@ class FreshRSS_user_Controller extends Minz_ActionController {
}
if ($ok) {
$userDAO = new FreshRSS_UserDAO();
- $ok &= $userDAO->createUser($new_user_name);
+ $ok &= $userDAO->createUser($new_user_name, $new_user_language);
}
invalidateHttpCache();
diff --git a/app/Models/UserDAO.php b/app/Models/UserDAO.php
index e35be848c..597182693 100644
--- a/app/Models/UserDAO.php
+++ b/app/Models/UserDAO.php
@@ -1,35 +1,44 @@
<?php
class FreshRSS_UserDAO extends Minz_ModelPdo {
- public function createUser($username) {
+ public function createUser($username, $new_user_language) {
$db = FreshRSS_Context::$system_conf->db;
require_once(APP_PATH . '/SQL/install.sql.' . $db['type'] . '.php');
$userPDO = new Minz_ModelPdo($username);
- $ok = false;
- $bd_prefix_user = $db['prefix'] . $username . '_';
- if (defined('SQL_CREATE_TABLES')) { //E.g. MySQL
- $sql = sprintf(SQL_CREATE_TABLES, $bd_prefix_user, _t('gen.short.default_category'));
- $stm = $userPDO->bd->prepare($sql);
- $ok = $stm && $stm->execute();
- } else { //E.g. SQLite
- global $SQL_CREATE_TABLES;
- if (is_array($SQL_CREATE_TABLES)) {
- $ok = true;
- foreach ($SQL_CREATE_TABLES as $instruction) {
- $sql = sprintf($instruction, $bd_prefix_user, _t('gen.short.default_category'));
- $stm = $userPDO->bd->prepare($sql);
- $ok &= ($stm && $stm->execute());
+ $currentLanguage = Minz_Translate::language();
+
+ try {
+ Minz_Translate::reset($new_user_language);
+ $ok = false;
+ $bd_prefix_user = $db['prefix'] . $username . '_';
+ if (defined('SQL_CREATE_TABLES')) { //E.g. MySQL
+ $sql = sprintf(SQL_CREATE_TABLES, $bd_prefix_user, _t('gen.short.default_category'));
+ $stm = $userPDO->bd->prepare($sql);
+ $ok = $stm && $stm->execute();
+ } else { //E.g. SQLite
+ global $SQL_CREATE_TABLES;
+ if (is_array($SQL_CREATE_TABLES)) {
+ $ok = true;
+ foreach ($SQL_CREATE_TABLES as $instruction) {
+ $sql = sprintf($instruction, $bd_prefix_user, _t('gen.short.default_category'));
+ $stm = $userPDO->bd->prepare($sql);
+ $ok &= ($stm && $stm->execute());
+ }
}
}
+ } catch (Exception $e) {
+ Minz_Log::error('Error while creating user: ' . $e->getMessage());
}
+ Minz_Translate::reset($currentLanguage);
+
if ($ok) {
return true;
} else {
$info = empty($stm) ? array(2 => 'syntax error') : $stm->errorInfo();
- Minz_Log::error('SQL error : ' . $info[2]);
+ Minz_Log::error('SQL error: ' . $info[2]);
return false;
}
}
diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml
index aab3aa4c4..a32247d14 100644
--- a/app/views/user/manage.phtml
+++ b/app/views/user/manage.phtml
@@ -3,7 +3,7 @@
<div class="post">
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('gen.action.back_to_rss_feeds'); ?></a>
- <form method="post" action="<?php echo _url('user', 'create'); ?>">
+ <form method="post" action="<?php echo _url('user', 'create'); ?>" autocomplete="off">
<input type="hidden" name="_csrf" value="<?php echo FreshRSS_Auth::csrfToken(); ?>" />
<legend><?php echo _t('admin.user.create'); ?></legend>
@@ -30,7 +30,7 @@
<label class="group-name" for="new_user_passwordPlain"><?php echo _t('admin.user.password_form'); ?></label>
<div class="group-controls">
<div class="stick">
- <input type="password" id="new_user_passwordPlain" name="new_user_passwordPlain" autocomplete="off" pattern=".{7,}" />
+ <input type="password" id="new_user_passwordPlain" name="new_user_passwordPlain" autocomplete="new-password" pattern=".{7,}" />
<a class="btn toggle-password" data-toggle="new_user_passwordPlain"><?php echo _i('key'); ?></a>
</div>
<?php echo _i('help'); ?> <?php echo _t('admin.user.password_format'); ?>