Help Configuring And Setting Cdbauthmanager

Hello,

I’m trying to make work yii-booster and AuthBoster extensions on a new fresh web app.

I have the idea that I have to do something with the default UserIdentity.php file under app/protected/components

I see that the validation is done against the php file, and not to the database.

Is my question a silly question… quite sure, Please help.

Best Regards

you have to change the UserIdentity.php according to your use from database…

something like this





<?php


/**

 * UserIdentity represents the data needed to identity a user.

 * It contains the authentication method that checks if the provided

 * data can identity the user.

 */

class UserIdentity extends CUserIdentity

{

	private $_id;

	const ERROR_EMAIL_INVALID=3;

	const ERROR_STATUS_NOTACTIV=4;

	const ERROR_STATUS_BAN=5;

	/**

	 * Authenticates a user.

	 * The example implementation makes sure if the username and password

	 * are both 'demo'.

	 * In practical applications, this should be changed to authenticate

	 * against some persistent user identity storage (e.g. database).

	 * @return boolean whether authentication succeeds.

	 */

	public function authenticate()

	{

		if (strpos($this->username,"@")) {

			$user=User::model()->notsafe()->findByAttributes(array('email'=>$this->username));

		} else {

			$user=User::model()->notsafe()->findByAttributes(array('username'=>$this->username));

		}

		if($user===null)

			if (strpos($this->username,"@")) {

				$this->errorCode=self::ERROR_EMAIL_INVALID;

			} else {

				$this->errorCode=self::ERROR_USERNAME_INVALID;

			}

		else if(Yii::app()->getModule('user')->encrypting($this->password)!==$user->password)

			$this->errorCode=self::ERROR_PASSWORD_INVALID;

		else if($user->status==0&&Yii::app()->getModule('user')->loginNotActiv==false)

			$this->errorCode=self::ERROR_STATUS_NOTACTIV;

		else if($user->status==-1)

			$this->errorCode=self::ERROR_STATUS_BAN;

		else {

			$this->_id=$user->id;

			$this->username=$user->username;

			$this->errorCode=self::ERROR_NONE;

		}

		return !$this->errorCode;

	}

    

    /**

    * @return integer the ID of the user record

    */

	public function getId()

	{

		return $this->_id;

	}

}




or like this




<?php


/**

 * UserIdentity represents the data needed to identity a user.

 * It contains the authentication method that checks if the provided

 * data can identity the user.

 */

class UserIdentity extends CUserIdentity

{

	private $_id;


	/**

	 * Authenticates a user.

	 * @return boolean whether authentication succeeds.

	 */

	public function authenticate()

	{

		$user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));

		if($user===null)

			$this->errorCode=self::ERROR_USERNAME_INVALID;

		else if(!$user->validatePassword($this->password))

			$this->errorCode=self::ERROR_PASSWORD_INVALID;

		else

		{

			$this->_id=$user->id;

			//agency_id

			Yii::app()->user->setState('agency_id', $user->agency_id); // Setting Up the Agency Id of the Logged in User

			$dbname=Agency::model()->findByAttributes(array('id'=>$user->agency_id));

			Yii::app()->user->setState('db_name', $dbname->db_name); // Setting Up the dbname of the Logged in User

			$this->username=$user->username;

			$this->errorCode=self::ERROR_NONE;

		}

		return $this->errorCode==self::ERROR_NONE;

	}


	/**

	 * @return integer the ID of the user record

	 */

	public function getId()

	{

		return $this->_id;

	}

}



Note:: I am only talking about the UserIdentity and authentication!!

I dont know what AuthBoster does!!