Exemplo n.º 1
0
 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;
         // Get confirm 0 = question, 1 = leave and delete also content links from group campaigns, 2 = leave only
         $confirm = $this->_request->getParam('confirm');
         $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 {
             // Get group campaings where user have content linked
             $usrModel = new Default_Model_User();
             $campaigns = $usrModel->getUserCampaignsWhereUserHasContent($usrId, $grpId);
             //echo '<pre>'; var_dump($campaigns);
             //$contents = $usrModel->getUserContentsInCampaign($usrId, $campaigns[1]['id_cmp']);
             //echo '<pre>'; var_dump($contents);
             if (isset($confirm) && $confirm == 1) {
                 // Leave group and delete all content linking from group campaigns
                 $usrHasGroupModel = new Default_Model_UserHasGroup();
                 $cmpHasCntModel = new Default_Model_CampaignHasContent();
                 $usrHasGroupModel->removeUserFromGroup($grpId, $usrId);
                 foreach ($campaigns as $campaign) {
                     $contents = $usrModel->getUserContentsInCampaign($usrId, $campaign['id_cmp']);
                     foreach ($contents as $content) {
                         $cmpHasCntModel->removeContentFromCampaign($content['id_cmp'], $content['id_cnt']);
                     }
                 }
                 $redirect = true;
             } elseif (isset($confirm) && $confirm == 2) {
                 // Only leave campaign
                 $usrHasGroupModel = new Default_Model_UserHasGroup();
                 $usrHasGroupModel->removeUserFromGroup($grpId, $usrId);
                 $redirect = true;
             } else {
                 // No confirmation yet
                 $this->view->campaigns = $campaigns;
                 $this->view->contentInCampaigns = count($campaigns);
                 $this->view->grpId = $grpId;
                 $redirect = false;
             }
         }
         if ($redirect) {
             // 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
         $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirector->gotoUrl($target);
     }
 }
Exemplo n.º 2
0
 /**
  * removeadminlinkAction
  *
  * Remove link to content from campaign
  *
  * @author Mikko Korpinen
  */
 public function removeadminlinksAction()
 {
     // Get authentication
     $auth = Zend_Auth::getInstance();
     // If user has identity
     if ($auth->hasIdentity()) {
         $cmpId = $this->_request->getParam('cmpid');
         $this->view->cmpid = $cmpId;
         $cntId = $this->_request->getParam('cntid');
         $this->view->cntid = $cntId;
         if (!(isset($cmpId) && isset($cntId))) {
             $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($cmpId);
         $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);
         }
         $cmphascntmodel = new Default_Model_CampaignHasContent();
         $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId);
         // TODO:
         // Tell the user that the unlink was created.
         // Redirect back to the current campaign's page.
         $target = $this->_urlHelper->url(array('cmpid' => $cmpId, '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);
     }
 }
Exemplo n.º 3
0
 /**
  * removelinkAction
  *
  * Remove link to content from campaign
  *
  * @author Mikko Korpinen
  */
 public function removelinksAction()
 {
     $cmpId = $this->_request->getParam('cmpid');
     $this->view->cmpid = $cmpId;
     $cntId = $this->_request->getParam('cntid');
     $this->view->cntid = $cntId;
     if (!(isset($cmpId) && isset($cntId))) {
         $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirector($redirectUrl);
     }
     $cmphascntmodel = new Default_Model_CampaignHasContent();
     $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId);
     // TODO:
     // Tell the user that the link was created.
     // Redirect back to the current campaign's page.
     $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true);
     $this->_redirector->gotoUrl($target);
 }