Exemplo n.º 1
0
 /**
  * Sets the Members of a group
  * @return
  */
 public function SetMembers()
 {
     // Check the token
     if (!Kit::CheckToken('assign_token')) {
         trigger_error(__('Sorry the form has expired. Please refresh.'), E_USER_ERROR);
     }
     $db =& $this->db;
     $response = new ResponseManager();
     $campaignObject = new Campaign();
     $campaignId = Kit::GetParam('CampaignID', _REQUEST, _INT);
     $layouts = Kit::GetParam('LayoutID', _POST, _ARRAY, array());
     // Authenticate this user
     $auth = $this->user->CampaignAuth($campaignId, true);
     if (!$auth->edit) {
         trigger_error(__('You do not have permission to edit this campaign'), E_USER_ERROR);
     }
     // Get all current members
     $currentMembers = Layout::Entries(NULL, array('campaignId' => $campaignId));
     // Flatten
     $currentLayouts = array_map(function ($element) {
         return $element->layoutId;
     }, $currentMembers);
     // Work out which ones are NEW
     $newLayouts = array_diff($currentLayouts, $layouts);
     // Check permissions to all new layouts that have been selected
     foreach ($newLayouts as $layoutId) {
         // Authenticate
         $auth = $this->user->LayoutAuth($layoutId, true);
         if (!$auth->view) {
             trigger_error(__('Your permissions to view a layout you are adding have been revoked. Please reload the Layouts form.'), E_USER_ERROR);
         }
     }
     // Remove all current members
     $campaignObject->UnlinkAll($campaignId);
     // Add all new members
     $displayOrder = 1;
     foreach ($layouts as $layoutId) {
         // By this point everything should be authenticated
         $campaignObject->Link($campaignId, $layoutId, $displayOrder);
         $displayOrder++;
     }
     $response->SetFormSubmitResponse(__('Layouts Added to Campaign'), false);
     $response->Respond();
 }
Exemplo n.º 2
0
 /**
  * Sets the Members of a group
  * @return
  */
 public function SetMembers()
 {
     // Check the token
     if (!Kit::CheckToken()) {
         trigger_error('Token does not match', E_USER_ERROR);
     }
     $db =& $this->db;
     $response = new ResponseManager();
     Kit::ClassLoader('campaign');
     $campaignObject = new Campaign($db);
     $campaignId = Kit::GetParam('CampaignID', _REQUEST, _INT);
     $layouts = Kit::GetParam('LayoutID', _POST, _ARRAY, array());
     // Authenticate this user
     $auth = $this->user->CampaignAuth($campaignId, true);
     if (!$auth->edit) {
         trigger_error(__('You do not have permission to edit this campaign'), E_USER_ERROR);
     }
     // Remove all current members
     $campaignObject->UnlinkAll($campaignId);
     // Add all new members
     $displayOrder = 1;
     foreach ($layouts as $layoutId) {
         // Authenticate
         $auth = $this->user->LayoutAuth($layoutId, true);
         if (!$auth->view) {
             trigger_error(__('Your permissions to view a layout you are adding have been revoked. Please reload the Layouts form.'), E_USER_ERROR);
         }
         $campaignObject->Link($campaignId, $layoutId, $displayOrder);
         $displayOrder++;
     }
     $response->SetFormSubmitResponse(__('Layouts Added to Campaign'), false);
     $response->Respond();
 }