summaryrefslogtreecommitdiffstats
path: root/apps/admin/lib/myUser.class.php
diff options
context:
space:
mode:
authorGravatar mszulecki2007-06-14 17:09:01 +0000
committerGravatar mszulecki2007-06-14 17:09:01 +0000
commit9f108dd1a969473375341d92a7b1252fa2cedc9a (patch)
treed5f2e35ec0bd2d52dab0ee3282fc6751e0fa8dba /apps/admin/lib/myUser.class.php
parente35884d11b81e4e4bbd73e1882e2b8011e85d118 (diff)
downloadmailadmin-9f108dd1a969473375341d92a7b1252fa2cedc9a.tar.gz
mailadmin-9f108dd1a969473375341d92a7b1252fa2cedc9a.tar.bz2
Initial import.
git-svn-id: http://svn.sukimashita.com/repos/mailadmin/trunk@2 4281df72-ff29-0410-8fee-2d9ac0c5f5a7
Diffstat (limited to 'apps/admin/lib/myUser.class.php')
-rw-r--r--apps/admin/lib/myUser.class.php83
1 files changed, 83 insertions, 0 deletions
diff --git a/apps/admin/lib/myUser.class.php b/apps/admin/lib/myUser.class.php
new file mode 100644
index 0000000..2f67e51
--- /dev/null
+++ b/apps/admin/lib/myUser.class.php
@@ -0,0 +1,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");
+ }
+}