Yii Framework Forum: User Identity - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

User Identity

#1 User is offline   sakthiviknesh 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 18-September 14

Posted 22 September 2014 - 01:20 AM

hi..i am new Babie to yii..userIdentity does not work
this function in login Form does not called..

$this->_identity=new UserIdentity($this->username,$this->password);



<?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
{
/**
* 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()
{
$users=array(
// username => password
'demo'=>'demo',
'admin'=>'admin',
);
if(!isset($users[$this->username]))
$this->errorCode=self::ERROR_USERNAME_INVALID;
elseif($users[$this->username]!==$this->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
$this->errorCode=self::ERROR_NONE;
return !$this->errorCode;
}
*/
private $_id;
public function authenticate()
{


$record=Trainer::model()->findByAttributes(array('email'=>$this->username)); // here I use Email as user name which comes from database
if($record===null)
{
$this->_id='user Null';
$this->errorCode=self::ERROR_USERNAME_INVALID;
}
else if($record->password!==$this->password) // here I compare db password with passwod field
{ $this->_id=$this->username;
// $this->errorCode=self::ERROR_PASSWORD_INVALID;
}
else if($record['status']!=='Active') // here I check status as Active in db
{
$err = "You have been Inactive by Admin.";
$this->errorCode = $err;
}

else
{
$this->_id=$record['id'];
Yii::app()->session['sUserId'] = $this->_id;
Yii::app()->session['sEmail'] = ucwords($record->email);
Yii::app()->session['mode'] = "trainer";
$this->setState('id', $record['id']);
$this->errorCode=self::ERROR_NONE;

}
return !$this->errorCode;
}

public function getId() // override Id
{
return $this->_id;
}

}


please help me
0

#2 User is offline   Rohit Suthar 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 228
  • Joined: 12-May 14
  • Location:Mumbai, India

Posted 25 September 2014 - 03:37 AM

Getting idea from these below wiki links -

http://www.yiiframew...e-users-in-yii/

http://www.yiiframew...me-in-database/

compare your userIdentity.php file source code also i suggest to you not need to session, even you can use setState.

like -

http://www.yiiframew...1/CUserIdentity

http://www.yiiframew...setState-detail
Thanks & regards,

ROHIT SUTHAR
Mumbai(India)

Follow me - @rohisuthar

www.yiiframework.us
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users