/** * Function to set variables up before form is built * * @param null * * @return void * @access public */ public function preProcess() { if ($this->_action & CRM_Core_Action::DELETE) { //check permission for action. if (!CRM_Core_Permission::checkActionPermission('CiviEvent', $this->_action)) { CRM_Core_Error::fatal(ts('You do not have permission to access this page')); } $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this); $this->_title = CRM_Core_DAO::getFieldValue('CRM_PCP_DAO_PCP', $this->_id, 'title'); $this->assign('title', $this->_title); parent::preProcess(); } if (!$this->_action) { $this->_action = CRM_Utils_Array::value('action', $_GET); $this->_id = CRM_Utils_Array::value('id', $_GET); } else { $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this); } //give the context. if (!isset($this->_context)) { $this->_context = CRM_Utils_Request::retrieve('context', 'String', $this); } $this->assign('context', $this->_context); $session = CRM_Core_Session::singleton(); $context = $session->popUserContext(); $userID = $session->get('userID'); //do not allow destructive actions without permissions $permission = FALSE; if (CRM_Core_Permission::check('administer CiviCRM') || $userID && CRM_Core_DAO::getFieldValue('CRM_PCP_DAO_PCP', $this->_id, 'contact_id') == $userID) { $permission = TRUE; } if ($permission && $this->_id) { $this->_title = CRM_Core_DAO::getFieldValue('CRM_PCP_DAO_PCP', $this->_id, 'title'); switch ($this->_action) { case CRM_Core_Action::DELETE: case 'delete': CRM_PCP_BAO_PCP::deleteById($this->_id); CRM_Core_Session::setStatus(ts("The Campaign Page '%1' has been deleted.", array(1 => $this->_title)), ts('Page Deleted'), 'success'); break; case CRM_Core_Action::DISABLE: case 'disable': CRM_PCP_BAO_PCP::setDisable($this->_id, '0'); CRM_Core_Session::setStatus(ts("The Campaign Page '%1' has been disabled.", array(1 => $this->_title)), ts('Page Disabled'), 'success'); break; case CRM_Core_Action::ENABLE: case 'enable': CRM_PCP_BAO_PCP::setDisable($this->_id, '1'); CRM_Core_Session::setStatus(ts("The Campaign Page '%1' has been enabled.", array(1 => $this->_title)), ts('Page Enabled'), 'success'); break; } if ($context) { CRM_Utils_System::redirect($context); } } }