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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<?php
class myUser extends sfBasicSecurityUser
{
public function signIn($user)
{
$this->setAuthenticated(true);
// TODO: set credentials
$this->addCredential($user->getRole()->getCredentials());
// set session attributes
$this->updateUserAttributes($user);
$this->setResultsPerPage(sfConfig::get("app_pagination_results_per_page"));
LogEntryPeer::log("User logged in.", LogEntry::PRIO_INFO);
$user->setLastlogin(time());
$user->save();
}
public function updateUserAttributes($user)
{
$this->setAttribute("nickname", $user->getNickname(), "user");
$this->setAttribute("role", $user->getRole()->getName(), "user");
$this->setAttribute("role_id", $user->getRole()->getId(), "user");
$this->setAttribute("user_id", $user->getId(), "user");
$this->setAttribute("lastlogin", $user->getLastLogin(), "user");
}
public function signOut($user)
{
LogEntryPeer::log("User logged out.", LogEntry::PRIO_INFO);
$this->setAuthenticated(false);
$this->clearCredentials();
$this->getAttributeHolder()->removeNamespace("user");
$this->getAttributeHolder()->removeNamespace("pager");
}
public function getResultsPerPage()
{
return $this->getAttribute("max_per_page", sfConfig::get("app_pager_max_per_page"), "pager");
}
public function setResultsPerPage($count)
{
$this->setAttribute("max_per_page", $count, "pager");
}
public function getDomainPermissions($c = null)
{
$user = UserPeer::retrieveByPK($this->getId());
return $user->getDomainPermissions($c);
}
public function getId()
{
return $this->getAttribute("user_id", '', "user");
}
public function getLastLogin()
{
return $this->getAttribute("lastlogin", '', "user");
}
public function getRoleId()
{
return $this->getAttribute("role_id", '', "user");
}
public function getRoleName()
{
return $this->getAttribute("role", '', "user");
}
public function getNickname()
{
return $this->getAttribute("nickname", '', "user");
}
}
|