summaryrefslogtreecommitdiffstats
path: root/application/controllers/AuthController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers/AuthController.php')
-rwxr-xr-xapplication/controllers/AuthController.php85
1 files changed, 20 insertions, 65 deletions
diff --git a/application/controllers/AuthController.php b/application/controllers/AuthController.php
index 0ba5027..b3f6bbf 100755
--- a/application/controllers/AuthController.php
+++ b/application/controllers/AuthController.php
@@ -14,6 +14,7 @@ class AuthController extends Zend_Controller_Action
{
protected $config = null;
protected $pbs2host = null;
+ protected $pbs2Api = null;
protected $userIDsNamespace = null;
protected $acl = null;
@@ -22,6 +23,7 @@ class AuthController extends Zend_Controller_Action
$bootstrap = $this->getInvokeArg('bootstrap');
$this->config = $bootstrap->getOptions();
$this->pbs2host = $this->config['pbs2']['host'];
+ $this->pbs2Api = new Poolctrl_Pbs2Api($this->config);
$this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
if(isset($this->userIDsNamespace['apikey'])) {
$this->acl = new Poolctrl_Acl($this->pbs2host, $this->config['pbs2']['checkright'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
@@ -42,75 +44,28 @@ class AuthController extends Zend_Controller_Action
$loginForm = new Application_Form_Login();
} else {
$loginForm = new Application_Form_Login($_POST);
-
if ($loginForm->isValid($_POST)) {
- $loginquery = "email=" . $loginForm->getValue('email') . "&password=" . $loginForm->getValue('password');
- $loginApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['login'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $loginquery);
- $loginXMLString = $loginApiResult['http-body'];
- if(strlen($loginXMLString) > 0) {
- $loginXML = new SimpleXMLElement($loginXMLString);
- $login = $loginXML->login;
- $success = sprintf("%s", $login->success);
- if ($success === "true") {
- $membershipSession = new Zend_Session_Namespace('memberships');
- $count = 0;
- foreach($login->membershiplist->membership as $membershipXML)
- {
- $membership = new Application_Model_Membership();
- $membership->setID(sprintf("%s", $membershipXML->id));
- $membership->setPersonID(sprintf("%s", $membershipXML->personid));
- $membership->setGroupID(sprintf("%s", $membershipXML->groupid));
- $membership->setRoleID(sprintf("%s", $membershipXML->roleid));
- $membership->setApikey(sprintf("%s", $membershipXML->apikey));
- $membership->setSuspend(sprintf("%s", $membershipXML->suspend));
- $membershipID = $membership->getID();
- $membershipSession->$membershipID = $membership;
- if($count == 0) {
- $apikey = sprintf("%s", $membershipXML->apikey);
- }
- $count++;
- }
-
- $personApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getperson'] . $apikey, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
- $personXMLString = $personApiResult['http-body'];
- if(strlen($personXMLString) > 0) {
- $personXML = new SimpleXMLElement($personXMLString);
- $person = new Application_Model_Person();
- $person->setID(sprintf("%s", $personXML->person->id));
- $person->setCity(sprintf("%s", $personXML->person->city));
- $person->setEmail(sprintf("%s", $personXML->person->email));
- $person->setFirstname(sprintf("%s", $personXML->person->firstname));
- $person->setHousenumber(sprintf("%s", $personXML->person->housenumber));
- $person->setLogin(sprintf("%s", $personXML->person->login));
- $person->setLogindate(sprintf("%s", $personXML->person->logindate));
- $person->setName(sprintf("%s", $personXML->person->name));
- $person->setPostalcode(sprintf("%s", $personXML->person->postalcode));
- $person->setRegisterdate(sprintf("%s", $personXML->person->registerdate));
- $person->setStreet(sprintf("%s", $personXML->person->street));
- $person->setSuspend(sprintf("%s", $personXML->person->suspend));
- $person->setTitle(sprintf("%s", $personXML->person->title));
- $personSession = new Zend_Session_Namespace('persons');
- $personName = sprintf("%s", $login->personid);
- $personSession->$personName = $person;
- }
+ $membershipSession = new Zend_Session_Namespace('memberships');
+ if($this->pbs2Api->login($loginForm->getValue('email'), $loginForm->getValue('password'), $membershipSession)) {
+ $personSession = new Zend_Session_Namespace('persons');
+ $this->pbs2Api->getPerson($personSession);
- $userSession = new Zend_Session_Namespace('userIDs');
- $userSession->personID = sprintf("%s", $login->personid);
+ $userSession = new Zend_Session_Namespace('userIDs');
+ $userSession->personID = sprintf("%s", $login->personid);
- $authSession = new Zend_Session_Namespace('auth');
- $authSession->storage = $loginForm->getValue('email');
+ $authSession = new Zend_Session_Namespace('auth');
+ $authSession->storage = $loginForm->getValue('email');
- $this->_helper->redirector('selectmembership', 'person');
- return;
- } else {
- $error = sprintf("%s", $login->error);
- if($error == "wrong email or password") {
- $poolctrlNotifier = new Poolctrl_Notifier();
- $this->view->notification = $poolctrlNotifier->notify('Wrong Email or Password', 'error');
- } else if($error == "person suspended") {
- $poolctrlNotifier = new Poolctrl_Notifier();
- $this->view->notification = $poolctrlNotifier->notify('Your Account is suspended', 'error');
- }
+ $this->_helper->redirector('selectmembership', 'person');
+ return;
+ } else {
+ $error = sprintf("%s", $login->error);
+ if($error == "wrong email or password") {
+ $poolctrlNotifier = new Poolctrl_Notifier();
+ $this->view->notification = $poolctrlNotifier->notify('Wrong Email or Password', 'error');
+ } else if($error == "person suspended") {
+ $poolctrlNotifier = new Poolctrl_Notifier();
+ $this->view->notification = $poolctrlNotifier->notify('Your Account is suspended', 'error');
}
}
}