UserIdentity.php
1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?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
{
/**
* Authenticated person ID
* @var string
*/
private $_id;
/**
* 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(empty($this->username)) {
$this->errorCode=self::ERROR_USERNAME_INVALID;
return !$this->errorCode;
}
$manager = Manager::model()->find(array(
"select" => array("`id`", "`name`", "`login`"),
"condition" => implode(" AND ", array(
"`manager` = :manager",
"`login` = :login",
"`passwd` = :pass"
)),
"params" => array(
":manager" => 1,
":login" => $this->username,
":pass" => $this->password
)
));
if($manager===null) {
$this->errorCode=self::ERROR_PASSWORD_INVALID;
}
else {
$this->_id = $manager->id;
// Write manager short info
$this->setState('__fullname', empty($manager->name) ? $manager->login : $manager->name);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}