CRM-15925 - CRM_Import_DataSource_SQL - Declare required permission
authorTim Otten <totten@civicrm.org>
Tue, 23 Aug 2016 22:55:29 +0000 (15:55 -0700)
committerSeamus Lee <seamuslee001@gmail.com>
Thu, 25 Aug 2016 10:57:08 +0000 (20:57 +1000)
CRM/Import/DataSource.php
CRM/Import/DataSource/SQL.php

index b58e6ad8485d38b2d37b29eb67ec9e94686c1080..fb5aa337557cea205f3074f78979cc8e3edce3ca 100644 (file)
@@ -43,7 +43,10 @@ abstract class CRM_Import_DataSource {
    * Provides information about the data source.
    *
    * @return array
-   *   collection of info about this data source
+   *   Description of this data source, including:
+   *   - title: string, translated, required
+   *   - permissions: array, optional
+   *
    */
   abstract public function getInfo();
 
@@ -69,4 +72,14 @@ abstract class CRM_Import_DataSource {
    */
   abstract public function postProcess(&$params, &$db, &$form);
 
+  /**
+   * Determine if the current user has access to this data source.
+   *
+   * @return bool
+   */
+  public function checkPermission() {
+    $info = $this->getInfo();
+    return empty($info['permissions']) || CRM_Core_Permission::check($info['permissions']);
+  }
+
 }
index 1c084cf5e52175f20a084cc6b0cb294dd4fc1eee..73471e8fa898ab699334b9d902c3b69a8a482230 100644 (file)
@@ -41,7 +41,10 @@ class CRM_Import_DataSource_SQL extends CRM_Import_DataSource {
    *   collection of info about this data source
    */
   public function getInfo() {
-    return array('title' => ts('SQL Query'));
+    return array(
+      'title' => ts('SQL Query'),
+      'permissions' => array('import SQL datasource'),
+    );
   }
 
   /**