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"); } }