diff options
Diffstat (limited to 'application/modules/user/controllers/GroupController.php')
-rw-r--r-- | application/modules/user/controllers/GroupController.php | 141 |
1 files changed, 113 insertions, 28 deletions
diff --git a/application/modules/user/controllers/GroupController.php b/application/modules/user/controllers/GroupController.php index a2434d2..e36bba7 100644 --- a/application/modules/user/controllers/GroupController.php +++ b/application/modules/user/controllers/GroupController.php @@ -23,11 +23,11 @@ class User_GroupController extends Zend_Controller_Action $this->personmapper = new Application_Model_PersonMapper(); $this->rolemapper = new Application_Model_RoleMapper(); $this->groupList = $this->groupMapper->fetchAll(); - + $userIDsNamespace = Zend_Session::namespaceGet('userIDs'); $this->membership = new Application_Model_Membership(); $this->membershipMapper->find($userIDsNamespace['membershipID'],$this->membership); - + } else { $this->_helper->redirector('login', 'auth'); return; @@ -38,8 +38,8 @@ class User_GroupController extends Zend_Controller_Action { // ACL show overview if(!Pbs_Acl::checkRight('gso')) - $this->_redirect('/user'); - + $this->_redirect('/user'); + $this->view->groupList = $this->groupList; // Search @@ -74,7 +74,7 @@ class User_GroupController extends Zend_Controller_Action { // ACL create new group if(!Pbs_Acl::checkRight('gc')) - $this->_redirect('/user'); + $this->_redirect('/user'); if (!isset($_POST["add"])){ $addForm = new user_Form_GroupAdd(array('grouplist' => $this->groupList)); @@ -198,7 +198,7 @@ class User_GroupController extends Zend_Controller_Action { // ACL create new group if(!Pbs_Acl::checkRight('gsdo') && !Pbs_Acl::checkRight('gsdog')) - $this->_redirect('/user'); + $this->_redirect('/user'); $groupID = $this->_request->getParam('groupID'); if($groupID == '' || !Pbs_Acl::checkRight('gsdog')) { @@ -207,30 +207,30 @@ class User_GroupController extends Zend_Controller_Action } } if($groupID == $this->membership->getGroupID() && !Pbs_Acl::checkRight('gsdo')) - $this->_redirect('/user'); - + $this->_redirect('/user'); + $this->view->usergroup = $this->membership->getGroupID(); $this->view->requestgroup = $groupID; // ACL is he allowed to see the requests of a group ? // TODO: THERE IS NO RIGHT TO EDIT A GROUP - # if(Pbs_Acl::checkRight('')){ - $groupRequests = $this->groupRequestMapper->findBy(array('groupID' => $groupID),true); - if(isset($groupRequests)) { - foreach($groupRequests as $groupRequest) { - $person = $this->personmapper->find($groupRequest['personID']); - $groupRequestList[] = array( + # if(Pbs_Acl::checkRight('')){ + $groupRequests = $this->groupRequestMapper->findBy(array('groupID' => $groupID),true); + if(isset($groupRequests)) { + foreach($groupRequests as $groupRequest) { + $person = $this->personmapper->find($groupRequest['personID']); + $groupRequestList[] = array( 'grouprequestID' => $groupRequest['grouprequestID'], 'person' => $person - ); - } - if(is_array($groupRequestList)) { - $this->view->groupRequestList = $groupRequestList; - } - // TODO: expand with al inherit roles - $this->view->roleList = $this->rolemapper->findBy(array('groupID' => $groupID),true); + ); } + if(is_array($groupRequestList)) { + $this->view->groupRequestList = $groupRequestList; + } + // TODO: expand with al inherit roles + $this->view->roleList = $this->rolemapper->findBy(array('groupID' => $groupID),true); + } # } - + if(Pbs_Acl::checkRight('gsmg')){ $members = $this->membershipMapper->findBy(array('groupID' => $groupID),true); if(isset($members)) { @@ -240,6 +240,7 @@ class User_GroupController extends Zend_Controller_Action $role = $this->rolemapper->find($membership_tmp->getRoleID()); $membersList[] = array( 'membershipID' => $member['membershipID'], + 'suspended' => $member['suspended'], 'person' => $person, 'role' => $role ); @@ -303,8 +304,8 @@ class User_GroupController extends Zend_Controller_Action { // ACL delete a group if(!Pbs_Acl::checkRight('gd')) - $this->_redirect('/user'); - + $this->_redirect('/user'); + $this->_helper->viewRenderer->setNoRender(); $groupID = $this->_request->getParam('groupID'); if(!isset($groupID)) { @@ -342,7 +343,7 @@ class User_GroupController extends Zend_Controller_Action { // ACL grant a membership to request if(!Pbs_Acl::checkRight('gam')) - $this->_redirect('/user'); + $this->_redirect('/user'); $this->_helper->viewRenderer->setNoRender(); if(isset($_POST['grouprequestID']) && isset($_POST['roleID'])) { @@ -378,11 +379,11 @@ class User_GroupController extends Zend_Controller_Action public function revokepersonAction() { - + $this->_helper->viewRenderer->setNoRender(); $membershipID = $this->_request->getParam('membershipID'); $rr = $this->membershipMapper->find($membershipID); - + if(($rr->getGroupID() == $this->membership->getGroupID && Pbs_Acl::checkRight('gdmo') ) || ( $rr->getGroupID() != $this->membership->getGroupID && Pbs_Acl::checkRight('gdmog'))){ if(isset($membershipID)) { $membership = $this->membershipMapper->find($membershipID); @@ -397,7 +398,91 @@ class User_GroupController extends Zend_Controller_Action } $this->_redirect("/user/group/show/groupID/" . $membership->getGroupID()); } - } + } + } + } + + public function declineAction() + { + if(!Pbs_Acl::checkRight('gdm')) { + $this->_redirect('/user'); + } + $this->_helper->viewRenderer->setNoRender(); + $grouprequestID = $this->_request->getParam('grouprequestID'); + if(isset($grouprequestID)) { + $groupRequest = $this->groupRequestMapper->find($grouprequestID); + if($groupRequest->getGroupID() != $this->userIDsNamespace['groupID']) { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('Not allowed to decline this grouprequest', 'forbidden'); + return; + } + try { + $this->groupRequestMapper->delete($groupRequest); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect("/user/group/show/groupID"); + } + } + + public function suspendmembershipAction() + { + if(!Pbs_Acl::checkRight('gsm')) { + $this->_redirect('/user'); + } + $this->_helper->viewRenderer->setNoRender(); + $membershipID = $this->_request->getParam('membershipID'); + if(isset($membershipID)) { + $membership = $this->membershipMapper->find($membershipID); + $membership->setSuspended(1); + if(isset($membership)) { + if($membership->getGroupID() != $this->userIDsNamespace['groupID']) { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('Not allowed to suspend this membership', 'forbidden'); + return; + } + try { + $this->membershipMapper->save($membership); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect("/user/group/show/"); + } + } + } + + public function resumemembershipAction() + { + if(!Pbs_Acl::checkRight('gsm')) { + $this->_redirect('/user'); + } + $this->_helper->viewRenderer->setNoRender(); + $membershipID = $this->_request->getParam('membershipID'); + if(isset($membershipID)) { + $membership = $this->membershipMapper->find($membershipID); + $membership->setSuspended(0); + if(isset($membership)) { + if($membership->getGroupID() != $this->userIDsNamespace['groupID']) { + $pbsNotifier = new Pbs_Notifier(); + $this->view->notification = $pbsNotifier->notify('Not allowed to resume this membership', 'forbidden'); + return; + } + try { + $this->membershipMapper->save($membership); + } catch(Zend_Exception $e) + { + echo "Caught exception: " . get_class($e) . "<br/>"; + echo "Message: " . $e->getMessage() . "<br/>"; + return; + } + $this->_redirect("/user/group/show/"); + } } } } |