summaryrefslogtreecommitdiffstats
path: root/apps/admin/modules/user/actions/actions.class.php
blob: 1af244577783dd234cfc277ad642e0ab966cb51e (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php

/**
 * user actions.
 *
 * @package    mailadmin
 * @subpackage user
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2692 2006-11-15 21:03:55Z fabien $
 */
class userActions extends autouserActions
{
	public function executeList()
	{
		// pageination
		if($this->hasRequestParameter("max_per_page"))
			$this->getUser()->setResultsPerPage($this->getRequestParameter("max_per_page"));
		
		return parent::executeList();
	}

	public function executeCreate()
	{
		// populate preset values
		$user = $this->getRequestParameter('user');
		$user["parent_user_id"] = $this->getUser()->getId();
		$this->getRequest()->setParameter('user', $user);
		
		$this->setTemplate("edit");
		return $this->executeEdit();
	}

	public function handleErrorCreate()
	{
		// populate preset values
		$user = $this->getRequestParameter('user');
		$user["parent_user_id"] = $this->getUser()->getId();
		$this->getRequest()->setParameter('user', $user);

		$this->setTemplate("edit");
		return $this->handleErrorEdit();
	}

	public function executeLogin()
	{
		if($this->getRequest()->getMethod() != sfRequest::POST)
		{
			$this->getRequest()->setAttribute('referer', $this->getRequest()->getReferer());

			return sfView::SUCCESS;
		}
		else
		{
			return $this->redirect($this->getRequestParameter('referer', '@homepage'));
		}
	}

	public function handleErrorLogin()
	{
		return sfView::SUCCESS;
	}

	public function executeSettings()
	{
		$user = UserPeer::retrieveByPK($this->getUser()->getId());
		$this->user = $user;
		
		if($this->getRequest()->getMethod() != sfRequest::POST)
		{
			$this->getRequest()->setAttribute('referer', $this->getRequest()->getReferer());
		}
		else
		{
			if($this->getRequest()->getParameter("commit") == "Cancel")
				return $this->redirect($this->getRequestParameter('referer', '@homepage'));

			// update record
			$user->setNickname($this->getRequestParameter("nickname"));
			$user->setFirstName($this->getRequestParameter("first_name"));
			$user->setLastName($this->getRequestParameter("last_name"));
			$user->setEmail($this->getRequestParameter("email"));

			// set new password
			$password = $this->getRequestParameter("password2");
			if($password != "")
				$user->setPassword($password);
			
			$user->save();

			// update session
			$this->getUser()->updateUserAttributes($user);

			return $this->redirect($this->getRequestParameter('referer', '@homepage'));
		}
		
		return sfView::SUCCESS;
	}
	
	public function handleErrorSettings()
	{
		$user = UserPeer::retrieveByPK($this->getUser()->getId());
		$this->user = $user;

		if($this->getRequest()->getParameter("commit") == "Cancel")
			return $this->redirect($this->getRequestParameter('referer', '@homepage'));

		return sfView::SUCCESS;
	}
	
	public function executeLogout()
	{
		$this->getUser()->signOut($user);
		$this->redirect("@homepage");
	}
}