CRM-17968 -- load users for joomla and WP
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Tue, 23 Feb 2016 12:48:51 +0000 (18:18 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Tue, 23 Feb 2016 12:48:51 +0000 (18:18 +0530)
CRM/Utils/System/Joomla.php
CRM/Utils/System/WordPress.php
bin/cli.class.php

index b063d70adb2372deedc828a1892858db14c954c3..0176be5bbcccd5c3c5ed4a9c866aaf1a93ecbd59 100644 (file)
@@ -430,13 +430,30 @@ class CRM_Utils_System_Joomla extends CRM_Utils_System_Base {
   }
 
   /**
-   * FIXME: Do something
-   *
-   * @param \obj $user
+   * @param \string $username
+   * @param \string $password
    *
    * @return bool
    */
-  public function loadUser($user) {
+  public function loadUser($username, $password = NULL) {
+    $uid = JUserHelper::getUserId($username);
+    if (empty($uid)) {
+      return FALSE;
+    }
+    $contactID = CRM_Core_BAO_UFMatch::getContactId($uid);
+    if (!empty($password)) {
+      $instance = JFactory::getApplication('site');
+      $params = array(
+        'username' => $username,
+        'password' => $password,
+      );
+      //perform the login action
+      $instance->login($params);
+    }
+
+    $session = CRM_Core_Session::singleton();
+    $session->set('ufID', $uid);
+    $session->set('userID', $contactID);
     return TRUE;
   }
 
index 4f8c32b30583b98f1d1e6f4e43e2f40cc93641c7..b927e16082fc4c10c6740d596516c81eee9ed0f3 100644 (file)
@@ -326,13 +326,24 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
   }
 
   /**
-   * FIXME: Do something
-   *
-   * @param \obj $user
+   * @param \string $user
    *
    * @return bool
    */
   public function loadUser($user) {
+    $userdata = get_user_by('login', $user);
+    if (!$userdata->data->ID) {
+      return false;
+    }
+
+    $uid = $userdata->data->ID;
+    wp_set_current_user($uid);
+    $contactID = CRM_Core_BAO_UFMatch::getContactId($uid);
+
+    // lets store contact id and user id in session
+    $session = CRM_Core_Session::singleton();
+    $session->set('ufID', $uid);
+    $session->set('userID', $contactID);
     return TRUE;
   }
 
index a051135620f7c0e863bb042a5b174776d72ee010..dbcc5e9caf01268e28dc77b6e38b980b31863dbb 100644 (file)
@@ -269,7 +269,7 @@ class civicrm_cli {
         $this->_log(ts("Failed to login as %1. Wrong username or password.", array('1' => $this->_user)));
         return FALSE;
       }
-      if (!$cms->loadUser($this->_user)) {
+      if (($this->_config->userFramework == 'Joomla' && !$cms->loadUser($this->_user, $this->_password)) || !$cms->loadUser($this->_user)) {
         $this->_log(ts("Failed to login as %1", array('1' => $this->_user)));
         return FALSE;
       }