oo-ify permissions page links
authordemeritcowboy <demeritcowboy@hotmail.com>
Tue, 17 Nov 2020 14:55:52 +0000 (09:55 -0500)
committerdemeritcowboy <demeritcowboy@hotmail.com>
Thu, 19 Nov 2020 14:26:52 +0000 (09:26 -0500)
CRM/Admin/Page/Access.php
CRM/Utils/System/Backdrop.php
CRM/Utils/System/Base.php
CRM/Utils/System/Drupal6.php
CRM/Utils/System/Drupal8.php
CRM/Utils/System/DrupalBase.php
CRM/Utils/System/Joomla.php
CRM/Utils/System/WordPress.php

index e8ca758623aaf826b27434fc083659aa2af63a2a..b7d3f346caabada77201c1ae6beea39d3b7d6df5 100644 (file)
@@ -17,8 +17,6 @@
 
 /**
  * Dashboard page for managing Access Control.
- *
- * For initial version, this page only contains static links - so this class is empty for now.
  */
 class CRM_Admin_Page_Access extends CRM_Core_Page {
 
@@ -26,40 +24,12 @@ class CRM_Admin_Page_Access extends CRM_Core_Page {
    * @return string
    */
   public function run() {
-    $config = CRM_Core_Config::singleton();
-
-    switch ($config->userFramework) {
-      case 'Drupal':
-        $this->assign('ufAccessURL', url('admin/people/permissions'));
-        break;
-
-      case 'Drupal6':
-        $this->assign('ufAccessURL', url('admin/user/permissions'));
-        break;
-
-      case 'Joomla':
-        //condition based on Joomla version; <= 2.5 uses modal window; >= 3.0 uses full page with return value
-        if (version_compare(JVERSION, '3.0', 'lt')) {
-          JHTML::_('behavior.modal');
-          $url = $config->userFrameworkBaseURL . 'index.php?option=com_config&view=component&component=com_civicrm&tmpl=component';
-          $jparams = 'rel="{handler: \'iframe\', size: {x: 875, y: 550}, onClose: function() {}}" class="modal"';
-
-          $this->assign('ufAccessURL', $url);
-          $this->assign('jAccessParams', $jparams);
-        }
-        else {
-          $uri = (string) JUri::getInstance();
-          $return = urlencode(base64_encode($uri));
-          $url = $config->userFrameworkBaseURL . 'index.php?option=com_config&view=component&component=com_civicrm&return=' . $return;
-
-          $this->assign('ufAccessURL', $url);
-          $this->assign('jAccessParams', '');
-        }
-        break;
-
-      case 'WordPress':
-        $this->assign('ufAccessURL', CRM_Utils_System::url('civicrm/admin/access/wp-permissions', 'reset=1'));
-        break;
+    $urlParams = CRM_Utils_System::getCMSPermissionsUrlParams();
+    if (isset($urlParams['ufAccessURL'])) {
+      $this->assign('ufAccessURL', $urlParams['ufAccessURL']);
+    }
+    if (isset($urlParams['jAccessParams'])) {
+      $this->assign('jAccessParams', $urlParams['jAccessParams']);
     }
     return parent::run();
   }
index 9e7f5640132f5ed86fa8e93ab0350968d2665440..ded63e216442af1d0c5a0a9d3cbba3e4831cc201 100644 (file)
@@ -1049,4 +1049,12 @@ AND    u.status = 1
     }
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return ['ufAccessURL' => url('admin/config/people/permissions')];
+  }
+
 }
index aabb9aa48b4d2b27e692c7954edbbf7935650220..e126a6d5f329d84041f9ba70f62d5118721b031f 100644 (file)
@@ -1004,4 +1004,12 @@ abstract class CRM_Utils_System_Base {
   public function prePostRedirect() {
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return [];
+  }
+
 }
index 343ec7fe74e32b608d01268d4b854ce3eac6dccd..97249fd9bd93a138d40b212d4855eaf6ceed8429 100644 (file)
@@ -809,4 +809,12 @@ class CRM_Utils_System_Drupal6 extends CRM_Utils_System_DrupalBase {
     ];
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return ['ufAccessURL' => url('admin/user/permissions')];
+  }
+
 }
index 85d0468296e910987fdfd9d19abcaa810015245e..fa6d8ac92651c9a2dc851fc676e8c4dbc94ad891 100644 (file)
@@ -827,4 +827,12 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
     return FALSE;
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return ['ufAccessURL' => \Drupal\Core\Url::fromRoute('user.admin_permissions')->toString()];
+  }
+
 }
index 9234c87d75fce66ae9c93a288e6b6d423c7b8747..e4cf7edf2c3feb580d7d3b32ef46c70b4192ac25 100644 (file)
@@ -701,4 +701,12 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
     return FALSE;
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return ['ufAccessURL' => url('admin/people/permissions')];
+  }
+
 }
index f7b4b6821310ea6c85de2dbf11ff3ee94e219c14..7883e484e0ca858dd83ce24e517004800ffdb4a8 100644 (file)
@@ -917,4 +917,29 @@ class CRM_Utils_System_Joomla extends CRM_Utils_System_Base {
     ];
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    $ufAccessURL = '';
+    $jAccessParams = '';
+    $config = CRM_Core_Config::singleton();
+    //condition based on Joomla version; <= 2.5 uses modal window; >= 3.0 uses full page with return value
+    if (version_compare(JVERSION, '3.0', 'lt')) {
+      JHTML::_('behavior.modal');
+      $ufAccessURL = $config->userFrameworkBaseURL . 'index.php?option=com_config&view=component&component=com_civicrm&tmpl=component';
+      $jAccessParams = 'rel="{handler: \'iframe\', size: {x: 875, y: 550}, onClose: function() {}}" class="modal"';
+    }
+    else {
+      $uri = (string) JUri::getInstance();
+      $return = urlencode(base64_encode($uri));
+      $ufAccessURL = $config->userFrameworkBaseURL . 'index.php?option=com_config&view=component&component=com_civicrm&return=' . $return;
+    }
+    return [
+      'ufAccessURL' => $ufAccessURL,
+      'jAccessParams' => $jAccessParams,
+    ];
+  }
+
 }
index f13ad3883035fa22d9a7fb56bb4a62b560919673..2877ffed2ad9faaa5575732ac599da8835c932c6 100644 (file)
@@ -1244,4 +1244,12 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     $_COOKIE[$name] = $value;
   }
 
+  /**
+   * Return the CMS-specific url for its permissions page
+   * @return array
+   */
+  public function getCMSPermissionsUrlParams() {
+    return ['ufAccessURL' => CRM_Utils_System::url('civicrm/admin/access/wp-permissions', 'reset=1')];
+  }
+
 }