Skip to content
Snippets Groups Projects
Commit da7b2f36 authored by efalcy's avatar efalcy
Browse files

hotline $27816 : lost password : add error messages if user has no mail

parent 2010c29f
1 merge request!1015Hotline #27816 alert user no mail
...@@ -20,6 +20,10 @@ ...@@ -20,6 +20,10 @@
*/ */
class AuthController extends ZendAfi_Controller_Action { class AuthController extends ZendAfi_Controller_Action {
protected $messages = [1 => 'Veuillez saisir votre identifiant.',
2 => 'Identifiant inconnu.',
4 => "Votre mail n'est pas renseigné dans votre compte lecteur. Merci de vous adresser à la bibliothèque pour connaître vos identifiants."];
public function init() { public function init() {
$this->view->locale = Zend_Registry::get('locale'); $this->view->locale = Zend_Registry::get('locale');
} }
...@@ -158,7 +162,7 @@ class AuthController extends ZendAfi_Controller_Action { ...@@ -158,7 +162,7 @@ class AuthController extends ZendAfi_Controller_Action {
$user = ZendAfi_Filters_Post::filterStatic($this->_request->getPost('username')); $user = ZendAfi_Filters_Post::filterStatic($this->_request->getPost('username'));
$classe_user = new Class_Users(); $classe_user = new Class_Users();
$ret = $classe_user->lostpass($user); $ret = $classe_user->lostpass($user);
$this->view->message = $this->messages[$ret["error"]]; $this->view->message = $this->view->_($this->messages[$ret["error"]]);
$this->view->message_mail = $ret["message_mail"]; $this->view->message_mail = $ret["message_mail"];
} }
$this->view->username=$user; $this->view->username=$user;
...@@ -179,8 +183,9 @@ class AuthController extends ZendAfi_Controller_Action { ...@@ -179,8 +183,9 @@ class AuthController extends ZendAfi_Controller_Action {
$user = ZendAfi_Filters_Post::filterStatic($this->_request->getPost('username')); $user = ZendAfi_Filters_Post::filterStatic($this->_request->getPost('username'));
$classe_user = new Class_Users(); $classe_user = new Class_Users();
$ret=$classe_user->lostpass($user); $ret=$classe_user->lostpass($user);
$this->view->message=$this->messages[$ret["error"]];
$this->view->message_mail=$ret["message_mail"]; $this->view->message=$this->view->_($this->messages[$ret["error"]]);
$this->view->message_mail=isset($ret["message_mail"])?$ret["message_mail"] : '';
$this->view->username=$user; $this->view->username=$user;
} }
} }
......
...@@ -973,7 +973,7 @@ class Class_Users extends Storm_Model_Abstract { ...@@ -973,7 +973,7 @@ class Class_Users extends Storm_Model_Abstract {
function lostpass($login) { function lostpass($login) {
if(!trim($login)) if(!trim($login))
return array('error' => 1); return ['error' => 1];
if (!$user = Class_Users::getLoader()->findFirstBy(['login' => $login])) if (!$user = Class_Users::getLoader()->findFirstBy(['login' => $login]))
$user = Class_UsersNonValid::getLoader()->findFirstBy(['login' => $login]); $user = Class_UsersNonValid::getLoader()->findFirstBy(['login' => $login]);
......
...@@ -1135,7 +1135,49 @@ class AuthControllerLoginActionWithDefaultPreferencesRenderTest extends AuthCont ...@@ -1135,7 +1135,49 @@ class AuthControllerLoginActionWithDefaultPreferencesRenderTest extends AuthCont
} }
} }
class AuthControllerLostPasswordUnknownPostTest extends AbstractControllerTestCase{
public function setUp() {
parent::setUp();
}
/** @test */
public function withUnknowUserShouldDisplayError() {
$this->postDispatch('/opac/auth/lostpass',['username' => 'unknown']);
$this->assertXPathContentContains('//div', 'Identifiant inconnu',$this->_response->getBody());
}
/** @test */
public function withEmptyUserShouldDisplayError() {
$this->postDispatch('/opac/auth/lostpass',['username' => '']);
$this->assertXPathContentContains('//div', 'Veuillez saisir votre identifiant.',$this->_response->getBody());
}
}
class AuthControllerLostPasswordNoMailPostTest extends AbstractControllerTestCase{
public function setUp() {
parent::setUp();
$user = $this->fixture('Class_Users',
['id' => 1,
'pseudo' => 'luddite',
'login' => 'luddite',
'password' => 'notech',
'nom' => 'Lu',
'prenom' => 'Dites']);
$this->postDispatch('/opac/auth/lostpass' , ['username' => 'luddite']);
}
/** @test */
public function withoutEmailShouldReturnErrorMessage() {
$this->assertXPathContentContains('//div', "Votre mail n'est pas renseigné dans votre compte lecteur. Merci de vous adresser à la bibliothèque pour connaître vos identifiants.");
}
}
class AuthControllerLostPasswordTest extends AuthControllerNobodyLoggedTestCase { class AuthControllerLostPasswordTest extends AuthControllerNobodyLoggedTestCase {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment