/** * 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(); }
/** * 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(); }