CRM-21272 (preliminary tidy up) move definition of isUserRegistrationPermitted to...
authoreileen <emcnaughton@wikimedia.org>
Fri, 6 Oct 2017 22:57:02 +0000 (11:57 +1300)
committereileen <emcnaughton@wikimedia.org>
Fri, 6 Oct 2017 23:00:31 +0000 (12:00 +1300)
CRM/Core/BAO/CMSUser.php
CRM/Utils/System/Base.php
CRM/Utils/System/Drupal8.php
CRM/Utils/System/DrupalBase.php
CRM/Utils/System/Joomla.php
CRM/Utils/System/WordPress.php

index 141ba941edd6a46b22753b03137b2c93797f74bb..3b23a1f7464a62b0646082c28ab76caf5d3d411b 100644 (file)
@@ -91,18 +91,8 @@ class CRM_Core_BAO_CMSUser {
     $isJoomla = ucfirst($config->userFramework) == 'Joomla' ? TRUE : FALSE;
     $isWordPress = $config->userFramework == 'WordPress' ? TRUE : FALSE;
 
-    //if CMS is configured for not to allow creating new CMS user,
-    //don't build the form,Fixed for CRM-4036
-    if ($isJoomla) {
-      $userParams = JComponentHelper::getParams('com_users');
-      if (!$userParams->get('allowUserRegistration')) {
-        return FALSE;
-      }
-    }
-    elseif ($isDrupal && !variable_get('user_register', TRUE)) {
-      return FALSE;
-    }
-    elseif ($isWordPress && !get_option('users_can_register')) {
+    if (!$config->userSystem->isUserRegistrationPermitted()) {
+      // Do not build form if CMS is not configured to allow creating users.
       return FALSE;
     }
 
@@ -111,8 +101,7 @@ class CRM_Core_BAO_CMSUser {
     }
 
     // $cms is true when there is email(primary location) is set in the profile field.
-    $session = CRM_Core_Session::singleton();
-    $userID = $session->get('userID');
+    $userID = CRM_Core_Session::singleton()->get('userID');
     $showUserRegistration = FALSE;
     if ($action) {
       $showUserRegistration = TRUE;
index 2191ede2adfb34b24335379f6e9679638c41ecbf..af939512753eca957e86df7bd50c34c1929129e0 100644 (file)
@@ -395,6 +395,15 @@ abstract class CRM_Utils_System_Base {
     return FALSE;
   }
 
+  /**
+   * Check if user registration is permitted.
+   *
+   * @return bool
+   */
+  public function isUserRegistrationPermitted() {
+    return FALSE;
+  }
+
   /**
    * Get user login URL for hosting CMS (method declared in each CMS system class)
    *
index 22a5faee225b0dcea8008d856a3d9254749dfc29..9053629842485c2f1d12c76cc18b9e22bbd3683a 100644 (file)
@@ -526,6 +526,16 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
     return \Drupal::currentUser()->isAuthenticated();
   }
 
+  /**
+   * @inheritDoc
+   */
+  public function isUserRegistrationPermitted() {
+    if (\Drupal::config('user.settings')->get('register') == 'admin_only') {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
   /**
    * @inheritDoc
    */
index cd0ca13c511cbd1140c78b319b35cf1658257fae..848c446b35942daef7e4e3082812e73966f175ec 100644 (file)
@@ -414,6 +414,16 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
     return defined('VERSION') ? VERSION : 'Unknown';
   }
 
+  /**
+   * @inheritDoc
+   */
+  public function isUserRegistrationPermitted() {
+    if (!variable_get('user_register', TRUE)) {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
   /**
    * @inheritDoc
    */
index 5d7b826457b26bfa7e1822fa13de18e8f10988e0..2ce306e3069d480240d2f23f7016a66fdc38ffdd 100644 (file)
@@ -578,6 +578,17 @@ class CRM_Utils_System_Joomla extends CRM_Utils_System_Base {
     return ($user->guest) ? FALSE : TRUE;
   }
 
+  /**
+   * @inheritDoc
+   */
+  public function isUserRegistrationPermitted() {
+    $userParams = JComponentHelper::getParams('com_users');
+    if (!$userParams->get('allowUserRegistration')) {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
   /**
    * @inheritDoc
    */
index 579f647d28b52cd4abae1a57cc00e4221bfeb0f5..b3ce465567674b53d126cfce69d11ffa45a97116 100644 (file)
@@ -609,6 +609,16 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     return $isloggedIn;
   }
 
+  /**
+   * @inheritDoc
+   */
+  public function isUserRegistrationPermitted() {
+    if (!get_option('users_can_register')) {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
   /**
    * @return mixed
    */