/** * waitinlistAction * * Waiting list for group */ public function waitinglistAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $usrId = $auth->getIdentity()->user_id; $grpId = $this->_request->getParam('grpid'); if (!isset($grpId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $this->view->grpid = $grpId; $usrHasGrpModel = new Default_Model_UserHasGroup(); $usrHasGrpWaitingModel = new Default_Model_UserHasGroupWaiting(); $grpmodel = new Default_Model_Groups(); $grp = $grpmodel->getGroupData($grpId); // Accept or deny button was pressed if ($this->getRequest()->isPost()) { // Get the IDs of the first and last selected user $firstUsrId = $this->getRequest()->getPost('accept_or_deny_first'); $lastUsrId = $this->getRequest()->getPost('accept_or_deny_last'); $privateMessagesModel = new Default_Model_PrivateMessages(); // Accept or deny selected user for ($i = $firstUsrId; $i <= $lastUsrId; $i++) { if ($this->getRequest()->getPost('select_' . $i) == 'accept') { $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i); $usrHasGrpModel->addUserToGroup($grpId, $i); // Send privamessage $usermessage = array(); $usermessage['privmsg_sender_id'] = 0; $usermessage['privmsg_receiver_id'] = $i; $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list'; $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $usermessage['privmsg_message'] = 'You have been accepted to <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>'; $privateMessagesModel->addMessage($usermessage); } else { if ($this->getRequest()->getPost('select_' . $i) == 'deny') { $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i); // Send privamessage $usermessage = array(); $usermessage['privmsg_sender_id'] = 0; $usermessage['privmsg_receiver_id'] = $i; $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list'; $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $usermessage['privmsg_message'] = 'You have not been approved by the <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>'; $privateMessagesModel->addMessage($usermessage); } } } } $users = $usrHasGrpWaitingModel->getAllWaitingUsersInGroup($grpId); // Is user group admin? $grpadminmodel = new Default_Model_GroupAdmins(); if (!$grpadminmodel->userIsAdmin($grpId, $usrId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $this->view->grp = $grp; $this->view->users = $users; } else { // If not logged, redirecting to system message page $message = 'You must login in!'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }
/** * removecampaignlinkAction - Remove campaign link */ public function removecampaignlinkAction() { // Get authentication $auth = Zend_Auth::getInstance(); // If user has identity if ($auth->hasIdentity()) { $parentCmpId = $this->_request->getParam('parentcmpid'); $this->view->parentcmpid = $parentCmpId; $childCmpId = $this->_request->getParam('childcmpid'); $this->view->childcmpid = $childCmpId; if (!(isset($parentCmpId) && isset($childCmpId))) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $cmpModel = new Default_Model_Campaigns(); $cmp = $cmpModel->getCampaignById($parentCmpId); $grpId = $cmp['id_grp_cmp']; $usrId = $auth->getIdentity()->user_id; $grpadminmodel = new Default_Model_GroupAdmins(); if (!$grpadminmodel->userIsAdmin($grpId, $usrId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $cmphascmpmodel = new Default_Model_CampaignHasCampaign(); $cmphascmpmodel->removeCampaignFromCampaign($parentCmpId, $childCmpId); $cmphascmpmodel->removeCampaignFromCampaign($childCmpId, $parentCmpId); // TODO: // Tell the user that the unlink was created. // Redirect back to the current campaign's page. $target = $this->_urlHelper->url(array('cmpid' => $parentCmpId, 'language' => $this->view->language), 'campaign_view', true); $this->_redirector->gotoUrl($target); } else { // If not logged, redirecting to system message page $message = 'content-link-not-logged'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }
function leaveAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { // Get group id and user id. $grpId = $this->_request->getParam('groupid'); $usrId = $auth->getIdentity()->user_id; $groupAdminsModel = new Default_Model_GroupAdmins(); if ($groupAdminsModel->userIsAdmin($grpId, $usrId)) { // Group admin can't leave the group. $message = "You can't leave this group " . "because you're its admin."; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } else { // Remove user from group. $usrHasGroupModel = new Default_Model_UserHasGroup(); $usrHasGroupModel->removeUserFromGroup($grpId, $usrId); } // Redirect back to the group page. $target = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $this->_redirector->gotoUrl($target); } else { // Not logged in - can't join a group. $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } }