From 6d572a7654ac9717d8ad82ba4037c88b07855825 Mon Sep 17 00:00:00 2001 From: michael pereira Date: Fri, 23 Sep 2011 19:06:16 +0200 Subject: login und selectmembership --- .../modules/ipxe/controllers/AuthController.php | 43 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'application/modules/ipxe/controllers/AuthController.php') diff --git a/application/modules/ipxe/controllers/AuthController.php b/application/modules/ipxe/controllers/AuthController.php index 5434a59..5a406b0 100644 --- a/application/modules/ipxe/controllers/AuthController.php +++ b/application/modules/ipxe/controllers/AuthController.php @@ -18,6 +18,7 @@ class Ipxe_AuthController extends Zend_Controller_Action { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); + $this->db = Zend_Db_Table::getDefaultAdapter(); } @@ -29,7 +30,7 @@ class Ipxe_AuthController extends Zend_Controller_Action echo $pbsNotifier->notify('serial',$result); } } - + public function serialAction() { $serialnumber = $this->_request->getParam('serialnumber'); @@ -72,10 +73,11 @@ class Ipxe_AuthController extends Zend_Controller_Action $result .= "imgfree\n"; if($login){ $result .= "login\n"; - $result .= "chain http://".$_SERVER['HTTP_HOST']."/ipxe/vesamenu.c32 http://\${username:uristring}:\${password:uristring}@".$_SERVER['HTTP_HOST']."/ipxe/resource/getvesamenuconfig/alpha/".$session->getAlphasessionID()."/login/true\n"; + $result .= "chain http://\${username:uristring}:\${password:uristring}@".$_SERVER['HTTP_HOST']."/ipxe/auth/login/alpha/".$session->getAlphasessionID()."/login/true\n"; }else{ $result .= "chain http://".$_SERVER['HTTP_HOST']."/ipxe/vesamenu.c32 http://".$_SERVER['HTTP_HOST']."/ipxe/resource/getvesamenuconfig/alpha/".$session->getAlphasessionID()."/login/false\n"; } + header("Content-Length: ".(strlen($result))); @@ -89,4 +91,41 @@ class Ipxe_AuthController extends Zend_Controller_Action } + public function loginAction() + { + $alpha = $this->_request->getParam('alpha'); + + if(!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])){ + header('WWW-Authenticate: Basic realm=""'); + header('HTTP/1.0 401 Unauthorized'); + exit; + } + + $email = $_SERVER['PHP_AUTH_USER']; + $password = $_SERVER['PHP_AUTH_PW']; + + $auth = Zend_Auth::getInstance(); + $adapter = new Zend_Auth_Adapter_DbTable($this->db, 'pbs_person', 'email', 'password', 'MD5(CONCAT(?, password_salt))'); + $adapter->setIdentity($email); + $adapter->setCredential($password); + + $result = $auth->authenticate($adapter); + + if ($result->isValid()) { + $personmapper = new Application_Model_PersonMapper(); + $result = $personmapper->findBy(array('email' => Zend_Auth::getInstance()->getIdentity()),true); + $person = new Application_Model_Person($result[0]); + $person->setID($result[0]['personID']); + $date = new DateTime(); + $person->setLogindate($date->getTimestamp()); + $personmapper->save($person); + + $this->_redirect("/ipxe/resource/getvesamenuconfig/alpha/".$alpha."/person/".$person->getID()."/login/true"); + return; + } else { + echo "Wrong Email or Password."; + } + } + + } -- cgit v1.2.3-55-g7522