From 6bccd4433b272ece032235003d65b87262de40de Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Mon, 14 Apr 2014 20:56:14 +0000
Subject: [PATCH] Add remote user

Support adding remote user to an organization
---
 include/ajax.orgs.php | 9 ++++++++-
 scp/ajax.php          | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/include/ajax.orgs.php b/include/ajax.orgs.php
index 2e4b5009a..eeaa23c7e 100644
--- a/include/ajax.orgs.php
+++ b/include/ajax.orgs.php
@@ -101,7 +101,7 @@ class OrgsAjaxAPI extends AjaxController {
         include(STAFFINC_DIR . 'templates/org-delete.tmpl.php');
     }
 
-    function addUser($id, $userId=0) {
+    function addUser($id, $userId=0, $remote=false) {
         global $thisstaff;
 
         if (!$thisstaff)
@@ -136,6 +136,13 @@ class OrgsAjaxAPI extends AjaxController {
             elseif (!$info['error'])
                 $info['error'] = 'Unable to add user to the organization - try again';
 
+        } elseif ($remote && $userId) {
+            list($bk, $userId) = explode(':', $userId, 2);
+            if (!($backend = AuthenticationBackend::getSearchDirectoryBackend($bk))
+                    || !($user_info = $backend->lookup($userId)))
+                Http::response(404, 'User not found');
+
+            $form = UserForm::getUserForm()->getForm($user_info);
         } elseif ($userId) //Selected local user
             $user = User::lookup($userId);
 
diff --git a/scp/ajax.php b/scp/ajax.php
index 8385b50c7..27fb8022a 100644
--- a/scp/ajax.php
+++ b/scp/ajax.php
@@ -104,6 +104,7 @@ $dispatcher = patterns('',
         url_get('^/select$', 'selectOrg'),
         url_get('^/select/(?P<id>\d+)$', 'selectOrg'),
         url_get('^/(?P<id>\d+)/add-user(?:/(?P<userid>\d+))?$', 'addUser'),
+        url_get('^/(?P<id>\d+)/add-user(?:/auth:(?P<userid>.+))?$', 'addUser', array(true)),
         url_post('^/(?P<id>\d+)/add-user$', 'addUser'),
         url_get('^/(?P<id>\d+)/delete$', 'delete'),
         url_delete('^/(?P<id>\d+)/delete$', 'delete')
-- 
GitLab