yii-user-management

Bonjour tout le monde,

J’ai installer l’extension yii-user-management sur le framework, elle marche presque parfaitement sauf que lorsque j’essaye de me connecter sur un compte non activé ou avec un mauvais mot de passe j’obtiens une erreur, pour un compte non validé j’obtiens ceci :




Undefined class constant 'ERROR_STATUS_NOTACTIV' in /var/www/yii/site/protected/modules/user/models/UserLogin.php on line 69

voici le fichier en question :

[PHP]<?php

/**

  • LoginForm class.

  • LoginForm is the data structure for keeping

  • user login form data. It is used by the ‘login’ action of ‘UserController’.

*/

class UserLogin extends CFormModel

{

public &#036;username;


public &#036;password;


public &#036;rememberMe;





/**


 * Declares the validation rules.


 * The rules state that username and password are required,


 * and password needs to be authenticated.


 */


public function rules()


{


	return array(


		// username and password are required


		array('username, password', 'required'),


		// rememberMe needs to be a boolean


		array('rememberMe', 'boolean'),


		// password needs to be authenticated


		array('password', 'authenticate'),


	);


}





public function attributeLabels()


{


if(Yii::app()-&gt;controller-&gt;module-&gt;loginType == 0)


	&#036;username = Yii::t(&quot;UserModule.user&quot;, &quot;Pseudonyme&quot;);


else if(Yii::app()-&gt;controller-&gt;module-&gt;loginType == 1)


	&#036;username = Yii::t(&quot;UserModule.user&quot;, &quot;Adresse email&quot;);


else if(Yii::app()-&gt;controller-&gt;module-&gt;loginType == 2)


	&#036;username = Yii::t(&quot;UserModule.user&quot;, &quot;Pseudonyme ou adresse email&quot;);





	return array(


		'username'=&gt;&#036;username,


		'password'=&gt;Yii::t(&quot;UserModule.user&quot;, &quot;password&quot;),


		'rememberMe'=&gt;Yii::t(&quot;UserModule.user&quot;, &quot;Se souvenir de moi la prochaine fois&quot;),


	);


}





/**


 * Authenticates the password.


 * This is the 'authenticate' validator as declared in rules().


 */


public function authenticate(&#036;attribute,&#036;params)


{


	if(&#33;&#036;this-&gt;hasErrors())  // we only want to authenticate when no input errors


	{


		&#036;identity=new UserIdentity(&#036;this-&gt;username,&#036;this-&gt;password);


		&#036;identity-&gt;authenticate();


		switch(&#036;identity-&gt;errorCode)


		{


			case UserIdentity::ERROR_NONE:


				&#036;duration=&#036;this-&gt;rememberMe ? 3600*24*30 : 0; // 30 days


				Yii::app()-&gt;user-&gt;login(&#036;identity,&#036;duration);


				break;


			case UserIdentity::ERROR_EMAIL_INVALID:


				&#036;this-&gt;addError(&quot;username&quot;,Yii::t(&quot;UserModule.user&quot;, &quot;Votre adresse email est invalide.&quot;));


				break;


			case UserIdentity::ERROR_USERNAME_INVALID:


				&#036;this-&gt;addError(&quot;username&quot;,Yii::t(&quot;UserModule.user&quot;, &quot;Votre pseudo est invalide.&quot;));


				break;


			case UserIdentity::ERROR_STATUS_NOTACTIV:


				&#036;this-&gt;addError(&quot;status&quot;,Yii::t(&quot;UserModule.user&quot;, &quot;Votre compte n'est pas activer.&quot;));


				break;


			case UserIdentity::ERROR_STATUS_BAN:


				&#036;this-&gt;addError(&quot;status&quot;,Yii::t(&quot;UserModule.user&quot;, &quot;Votre compte est banni.&quot;));


				break;


			case UserIdentity::ERROR_PASSWORD_INVALID:


				&#036;this-&gt;addError(&quot;password&quot;,Yii::t(&quot;UserModule.user&quot;, &quot;Mot de passe invalide.&quot;));


				break;


		}


	}


}

}

[/PHP]

la ligne 69 est celle-ci :


case UserIdentity::ERROR_STATUS_NOTACTIV:

Vous ne sauriez pas d’où est-ce que cela pourrais venir ?

PS : je ne peux pas non plus modifier mon mot de passe.

Cordialement

Dans la classe UserIdentity (components/UserIdentity.php), la constante définie est ERROR_STATUS_NOTACTIVE (avec un E à la fin), je suppose que c’est une erreur du codeur, rajoute un E à la ligne en faute, ça devrait éliminer le problème

Merci beaucoup, tu es le premier à m’avoir répondu clairement.

Du coup je suis passer à une autre extension.