summaryrefslogtreecommitdiffstats
path: root/apps/admin/lib/myUser.class.php
blob: 2f67e516e9fec6ae9922833ef33eb80e8a16d4c7 (plain)
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");
	}
}