summaryrefslogtreecommitdiffstats
path: root/application/controllers/PersonController.php
diff options
context:
space:
mode:
authorsebastian wagner2011-07-04 17:37:02 +0200
committersebastian wagner2011-07-04 17:37:02 +0200
commit5359f6e8de1c409f4cb717c700de63409dfb3a49 (patch)
tree45dda64680ee4da0055fff1eaa92c1d87638d093 /application/controllers/PersonController.php
parentminor (diff)
downloadpoolctrl-5359f6e8de1c409f4cb717c700de63409dfb3a49.tar.gz
poolctrl-5359f6e8de1c409f4cb717c700de63409dfb3a49.tar.xz
poolctrl-5359f6e8de1c409f4cb717c700de63409dfb3a49.zip
login formular
Diffstat (limited to 'application/controllers/PersonController.php')
-rw-r--r--application/controllers/PersonController.php132
1 files changed, 132 insertions, 0 deletions
diff --git a/application/controllers/PersonController.php b/application/controllers/PersonController.php
new file mode 100644
index 0000000..4476f4e
--- /dev/null
+++ b/application/controllers/PersonController.php
@@ -0,0 +1,132 @@
+<?php
+/*
+ * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
+ * This program is free software distributed under the GPL version 2.
+ * See http://gpl.openslx.org/
+ *
+ * If you have any feedback please consult http://feedback.openslx.org/ and
+ * send your suggestions, praise, or complaints to feedback@openslx.org
+ *
+ * General information about OpenSLX can be found at http://openslx.org/
+ */
+
+class PersonController extends Zend_Controller_Action
+{
+
+ protected $person = null;
+ protected $personmapper = null;
+ protected $membershipMapper = null;
+ protected $memberships = null;
+ protected $groupMapper = null;
+ protected $groups = null;
+ protected $userIDsNamespace = null;
+
+ public function init()
+ {
+ if (Zend_Auth::getInstance()->hasIdentity()) {
+ $this->personmapper = new Application_Model_PersonMapper();
+ $this->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ if(isset($this->userIDsNamespace['personID'])) {
+ $this->person = $this->personmapper->find($this->userIDsNamespace['personID']);
+ } else {
+ $result = $this->personmapper->findBy(array('email' => Zend_Auth::getInstance()->getIdentity()),true);
+ $this->person = new Application_Model_Person($result[0]);
+ $this->person->setID($result[0]['personID']);
+ }
+ $this->groupMapper = new Application_Model_GroupMapper();
+ $this->membershipMapper = new Application_Model_MembershipMapper();
+ $this->memberships = $this->membershipMapper->findBy(array("personID" => $this->person->getID()),true);
+
+ $this->view->apikeys = array();
+
+ if(isset($this->memberships)) {
+ foreach($this->memberships as $membership) {
+ $group = $this->groupMapper->find($membership['groupID']);
+ $this->view->apikeys[$group->getID()] = $membership['apikey'];
+ $this->groups[] = array (
+ 'groupID' => $group->getID(),
+ 'title' => $group->getTitle(),
+ 'description' => $group->getDescription(),
+ 'membershipID' => $membership['membershipID'],
+ );
+ }
+ }
+ } else {
+ $this->_helper->redirector('login', 'auth');
+ return;
+ }
+ }
+
+ public function indexAction()
+ {
+ $this->view->person = $this->person;
+ $this->view->userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ }
+
+ public function selectmembershipAction()
+ {
+ $userIDsNamespace = Zend_Session::namespaceGet('userIDs');
+ if(isset($userIDsNamespace['membershipID'])) {
+ $this->_redirect('/');
+ } else {
+ if(count($this->memberships) == 1) {
+ $myMembership = $this->memberships[0];
+ $roleSession = new Zend_Session_Namespace('userIDs');
+ $roleSession->membershipID = $myMembership['membershipID'];
+ $roleSession->personID = $myMembership['personID'];
+ $roleSession->groupID = $myMembership['groupID'];
+ $roleSession->apikey = $myMembership['apikey'];
+ $this->_redirect('/');
+ } elseif(count($this->memberships) > 1) {
+ if(isset($_POST['selectmembership'])) {
+ $roleSession = new Zend_Session_Namespace('userIDs');
+ $roleSession->membershipID = $_POST['membershipID'];
+ $roleSession->personID = $this->person->getID();
+ $membership = $this->membershipMapper->find($_POST['membershipID']);
+ $roleSession->groupID = $membership->getGroupID();
+ $roleSession->apikey = $membership->getApikey();
+ $this->_redirect('/');
+ return;
+ } else {
+ $groupMapper = new Application_Model_GroupMapper();
+ if(isset($this->memberships)) {
+ $suspendlist = array();
+ foreach($this->memberships as $membership) {
+ $group = $groupMapper->find($membership['groupID']);
+ if($membership['suspend'] == 0){
+ $membershipList[] = array(
+ 'membershipID' => $membership['membershipID'],
+ 'group' => $group->getTitle()
+ );
+ }
+ else{
+ $suspendlist[] = array(
+ 'membershipID' => $membership['membershipID'],
+ 'group' => $group->getTitle()
+ );
+ }
+
+ }
+ if(count($suspendlist) >=1){
+ $pbsNotifier = new Pbs_Notifier();
+ $this->view->notification = $pbsNotifier->notify("Actually ".count($suspendlist)." Memberships are suspended", 'error' );
+ }
+ }
+ $membershipSelectForm = new Application_Form_MembershipSelect(array('membershiplist' => $membershipList));
+ $this->view->membershipSelectForm = $membershipSelectForm;
+ }
+ } else {
+ $this->_helper->redirector('request', 'person');
+ }
+ }
+ }
+
+ public function changemembershipAction()
+ {
+ $this->_helper-> viewRenderer-> setNoRender();
+ Zend_Session::namespaceUnset('userIDs');
+ $this->_helper->redirector('selectmembership', 'person');
+ return;
+ }
+}
+