浏览代码

Configuration du mot de passe

https://github.com/marienfressinaud/FreshRSS/issues/104
Alexandre Alapetite 12 年之前
父节点
当前提交
43f1b227b4
共有 4 个文件被更改,包括 25 次插入2 次删除
  1. 13 0
      app/Controllers/usersController.php
  2. 2 1
      app/i18n/en.php
  3. 2 1
      app/i18n/fr.php
  4. 8 0
      app/views/configure/users.phtml

+ 13 - 0
app/Controllers/usersController.php

@@ -14,8 +14,21 @@ class FreshRSS_users_Controller extends Minz_ActionController {
 		if (Minz_Request::isPost()) {
 			$ok = true;
 
+			$passwordPlain = Minz_Request::param('passwordPlain', false);
+			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);	//A bit expensive, on purpose
+				$passwordPlain = '';
+				$this->view->conf->_passwordHash($passwordHash);
+			}
+
 			$mail = Minz_Request::param('mail_login', false);
 			$this->view->conf->_mail_login($mail);
+
 			$ok &= $this->view->conf->save();
 
 			$email = $this->view->conf->mail_login;

+ 2 - 1
app/i18n/en.php

@@ -161,7 +161,8 @@ return array (
 
 	'current_user'			=> 'Current user',
 	'default_user'			=> 'Username of the default user (maximum 16 alphanumeric characters)',
-	'persona_connection_email'	=> 'Login mail address (for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)',
+	'password'			=>'Password<br /><small>(for the Web-form login method)</small>',
+	'persona_connection_email'	=> 'Login mail address<br /><small>(for <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
 	'allow_anonymous'		=> 'Allow anonymous reading for the default user (%s)',
 	'auth_token'			=> 'Authentication token',
 	'explain_token'			=> 'Allows to access RSS output of the default user without authentication.<br /><kbd>%s?token=%s</kbd>',

+ 2 - 1
app/i18n/fr.php

@@ -160,8 +160,9 @@ return array (
 	'think_to_add'			=> 'Pensez à en ajouter !',
 
 	'current_user'			=> 'Utilisateur actuel',
+	'password'			=>'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
 	'default_user'			=> 'Nom de l’utilisateur par défaut (16 caractères alphanumériques maximum)',
-	'persona_connection_email'	=> 'Adresse courriel de connexion (pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)',
+	'persona_connection_email'	=> 'Adresse courriel de connexion<br /><small>(pour <a href="https://persona.org/" rel="external">Mozilla Persona</a>)</small>',
 	'allow_anonymous'		=> 'Autoriser la lecture anonyme pour l’utilisateur par défaut (%s)',
 	'auth_token'			=> 'Jeton d’identification',
 	'explain_token'			=> 'Permet d’accéder à la sortie RSS de l’utilisateur par défaut sans besoin de s’authentifier.<br /><kbd>%s?output=rss&token=%s</kbd>',

+ 8 - 0
app/views/configure/users.phtml

@@ -17,6 +17,14 @@
 			</div>
 		</div>
 
+		<div class="form-group">
+			<label class="group-name" for="passwordPlain"><?php echo Minz_Translate::t('password'); ?></label>
+			<div class="group-controls">
+				<input type="password" id="passwordPlain" name="passwordPlain" />
+				<noscript><b><?php echo Minz_Translate::t('javascript_should_be_activated'); ?></b></noscript>
+			</div>
+		</div>
+
 		<div class="form-group">
 			<label class="group-name" for="mail_login"><?php echo Minz_Translate::t('persona_connection_email'); ?></label>
 			<?php $mail = $this->conf->mail_login; ?>