Merge commit '762fe6d92bc' into 4.5-missing-prs
[civicrm-core.git] / CRM / Utils / System / DrupalBase.php
index b0cff3e7c64c46b89dbdc0ba75cc327ef3073c00..a881144a69ec84bb3233467d7f92b759a8d1338e 100644 (file)
  * Drupal specific stuff goes here
  */
 abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
+
+  /**
+   * Does this CMS / UF support a CMS specific logging mechanism?
+   * @todo - we should think about offering up logging mechanisms in a way that is also extensible by extensions
+   * @var bool
+   */
+  var $supports_UF_Logging = TRUE;
   /**
    *
    */
   function __construct() {
+    /**
+     * deprecated property to check if this is a drupal install. The correct method is to have functions on the UF classes for all UF specific
+     * functions and leave the codebase oblivious to the type of CMS
+     * @deprecated
+     * @var bool
+     */
     $this->is_drupal = TRUE;
     $this->supports_form_extensions = TRUE;
   }
@@ -237,4 +250,51 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
   function permissionDenied() {
     drupal_access_denied();
   }
+
+  /**
+   * Get Url to view user record
+   * @param integer $contactID Contact ID
+   *
+   * @return string
+   */
+  function getUserRecordUrl($contactID) {
+    $uid = CRM_Core_BAO_UFMatch::getUFId($contactID);
+    if (CRM_Core_Session::singleton()->get('userID') == $contactID || CRM_Core_Permission::checkAnyPerm(array('cms:administer users', 'cms:view user account'))) {
+      return CRM_Utils_System::url('user/' . $uid);
+    };
+  }
+
+  /**
+   * Is the current user permitted to add a user
+   * @return bool
+   */
+  function checkPermissionAddUser() {
+    if (CRM_Core_Permission::check('administer users')) {
+      return TRUE;
+    }
+  }
+
+
+  /**
+   * Log error to CMS
+   */
+  function logger($message) {
+    if (CRM_Core_Config::singleton()->userFrameworkLogging) {
+      watchdog('civicrm', '%message', array('%message' => $message), NULL, WATCHDOG_DEBUG);
+    }
+  }
+
+  /**
+   * Flush css/js caches
+   */
+  function clearResourceCache() {
+    _drupal_flush_css_js();
+  }
+
+  /**
+   * Append to coreResourcesList
+   */
+  function appendCoreResources(&$list) {
+    $list[] = 'js/crm.drupal.js';
+  }
 }