further comment fixes
[civicrm-core.git] / CRM / Admin / Form / ScheduleReminders.php
index 6877fcacf0e4b7a5f1c4ab00f54fd7dd19608ac9..4e1893e1b4a19c9b38f74b2c75f7c3fc756ee307 100644 (file)
@@ -1,10 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.6                                                |
+ | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
- | Copyright (C) 2011 Marty Wright                                    |
- | Licensed to CiviCRM under the Academic Free License version 3.0.   |
+ | Copyright CiviCRM LLC (c) 2004-2015                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
  *
  * @package CRM
  * @copyright CiviCRM LLC (c) 2004-2015
- * $Id$
- *
  */
 
 /**
- * This class generates form components for Scheduling Reminders
- *
+ * This class generates form components for Scheduling Reminders.
  */
 class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
@@ -49,8 +45,6 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
   /**
    * Build the form object.
-   *
-   * @return void
    */
   public function buildQuickForm() {
     parent::buildQuickForm();
@@ -58,6 +52,19 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
     $providersCount = CRM_SMS_BAO_Provider::activeProviderCount();
     $this->_context = CRM_Utils_Request::retrieve('context', 'String', $this);
 
+    //CRM-16777: Don't provide access to administer schedule reminder page, with user that does not have 'administer CiviCRM' permission
+    if (empty($this->_context) && !CRM_Core_Permission::check('administer CiviCRM')) {
+      CRM_Core_Error::fatal(ts('You do not have permission to access this page.'));
+    }
+    //CRM-16777: When user have ACLs 'edit' permission for specific event, do not give access to add, delete & updtae
+    //schedule reminder for other events.
+    else {
+      $this->_compId = CRM_Utils_Request::retrieve('compId', 'Integer', $this);
+      if (!CRM_Event_BAO_Event::checkPermission($this->_compId, CRM_Core_Permission::EDIT)) {
+        CRM_Core_Error::fatal(ts('You do not have permission to access this page.'));
+      }
+    }
+
     if ($this->_action & (CRM_Core_Action::DELETE)) {
       $reminderName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_ActionSchedule', $this->_id, 'title');
       if ($this->_context == 'event') {
@@ -374,9 +381,6 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
 
   /**
    * Process the form submission.
-   *
-   *
-   * @return void
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
@@ -612,4 +616,17 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
     CRM_Core_Session::setStatus($status, ts('Saved'), 'success');
   }
 
+  /**
+   * List available tokens for this form.
+   *
+   * @return array
+   */
+  public function listTokens() {
+    $tokens = CRM_Core_SelectValues::contactTokens();
+    $tokens = array_merge(CRM_Core_SelectValues::activityTokens(), $tokens);
+    $tokens = array_merge(CRM_Core_SelectValues::eventTokens(), $tokens);
+    $tokens = array_merge(CRM_Core_SelectValues::membershipTokens(), $tokens);
+    return $tokens;
+  }
+
 }