summaryrefslogtreecommitdiffstats
path: root/apps/admin/lib/myLoginValidator.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/myLoginValidator.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/myLoginValidator.php')
-rw-r--r--apps/admin/lib/myLoginValidator.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/admin/lib/myLoginValidator.php b/apps/admin/lib/myLoginValidator.php
new file mode 100644
index 0000000..03890aa
--- /dev/null
+++ b/apps/admin/lib/myLoginValidator.php
@@ -0,0 +1,45 @@
+<?php
+
+class myLoginValidator extends sfValidator
+{
+ public function initialize($context, $parameters = null)
+ {
+ // initialize parent
+ parent::initialize($context);
+
+ // set defaults
+ $this->setParameter('login_error', 'Invalid input');
+
+ $this->getParameterHolder()->add($parameters);
+
+ return true;
+ }
+
+ public function execute(&$value, &$error)
+ {
+ $password_param = $this->getParameter('password');
+ $password = $this->getContext()->getRequest()->getParameter($password_param);
+
+ $login = $value;
+
+ $c = new Criteria();
+ $c->add(UserPeer::NICKNAME, $login);
+ $user = UserPeer::doSelectOne($c);
+
+ // nickname exists?
+ if ($user)
+ {
+ // password is OK?
+ if (sha1($user->getSalt().$password) == $user->getSha1Password())
+ {
+ $this->getContext()->getUser()->signIn($user);
+ return true;
+ }
+ }
+
+ $error = $this->getParameter('login_error');
+ return false;
+ }
+}
+
+?>