diff --git a/include/ajax.orgs.php b/include/ajax.orgs.php index 2e4b5009af19505a8a76a270ad35761ff74e74e2..eeaa23c7eb4a9a1405c624d731dac599ad49a946 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 8385b50c718d5e246f054df1cf6119edaa4c507b..27fb8022a9d143a2856bc3ad95b686dfef8ffb06 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')