diff --git a/webgui/ajax.php b/webgui/ajax.php index 96a2ea9225f33373e3a52a97317e91bfdbc1bde8..a0d3fd0bc75d3d4df9ab329c57c8258794e7f469 100644 --- a/webgui/ajax.php +++ b/webgui/ajax.php @@ -151,6 +151,15 @@ switch ($function) { # AdminUserGroups.js functions + case "removeAdminUserGroup": + + $res = removeAdminUserGroup($soapParams); + if (isset($res)) { + ajaxException($res); + } + + break; + case "getAdminUserGroups": $res = getAdminUserGroups($soapParams); @@ -164,6 +173,7 @@ $res->setDatasetSize($numResults); echo json_encode($res->export()); + break; # AdminUserAttributes.js functions diff --git a/webgui/include/ajax/functions/AdminUserGroups.php b/webgui/include/ajax/functions/AdminUserGroups.php index dacec14755b126af096bf4b222908d097d7b4e1d..d06a73539b4b22116c41fa4923769994711e5790 100644 --- a/webgui/include/ajax/functions/AdminUserGroups.php +++ b/webgui/include/ajax/functions/AdminUserGroups.php @@ -3,45 +3,58 @@ include_once("include/db.php"); -# Return list of attributes -function getAdminUserGroups($params) { +# Unlink user from group +function removeAdminUserGroup($params) { global $db; - $i = 0; + $res = DBDo("DELETE FROM users_to_groups WHERE ID = ?",array($params[0])); + if (!is_numeric($res)) { + return $res; + } + + return NULL; +} + +# Return list of groups +function getAdminUserGroups($params) { + global $db; # Filters and sorts are the same here $filtersorts = array( - 'ID' => 'users_to_groups.GroupID', + 'ID' => 'users_to_groups.ID', 'Name' => 'groups.Name' ); - $resultArray = array(); - $res = DBDo("SELECT GroupID FROM users_to_groups WHERE UserID = ?",$params[0]); - if ($res !== FALSE) { - while ($row = $res->fetchObject()) { - - $i++; - - $item = array(); - $item['ID'] = $row->groupid; - - $res2 = DBDo("SELECT Name FROM groups WHERE ID = ?",$item['ID']); - if ($res !== FALSE) { - $row = $res->fetchObject(); - $item['Name'] = $row->name; - if (isset($item['Name'])) { - array_push($resultArray,$item); - } - } - } - } - + $res = DBSelectSearch(" + SELECT + users_to_groups.ID, groups.Name + FROM + users_to_groups, groups + WHERE + groups.ID = users_to_groups.GroupID + AND users_to_groups.UserID = ".DBQuote($params[0])." + ",$params[1],$filtersorts,$filtersorts); + + $sth = $res[0]; $numResults = $res[1]; # If STH is blank, return the error back to whoever requested the data - if ($res == FALSE) { + if (!isset($sth)) { return $res; } - return array($resultArray,$i); + $resultArray = array(); + + # loop through rows + while ($row = $sth->fetchObject()) { + $item = array(); + + $item['ID'] = $row->id; + $item['Name'] = $row->name; + + # push this row onto array + array_push($resultArray,$item); + } + + return array($resultArray,$numResults); } ?> diff --git a/webgui/js/app/windows/AdminUserGroups.js b/webgui/js/app/windows/AdminUserGroups.js index 77de8827879c8b76560bca542711294ae43d4433..41e371ebba2d500080ff12b219de963f268269e3 100644 --- a/webgui/js/app/windows/AdminUserGroups.js +++ b/webgui/js/app/windows/AdminUserGroups.js @@ -176,14 +176,14 @@ function showAdminGroupAddEditWindow(id) { // Display edit/add form -function showAdminGroupRemoveWindow(parent,id) { +function showAdminUserGroupRemoveWindow(parent,id) { // Mask parent window parent.getEl().mask(); // Display remove confirm window Ext.Msg.show({ title: "Confirm removal", - msg: "Are you very sure you wish to remove this group?", + msg: "Are you very sure you wish to unlink this group?", icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.YESNO, modal: false, @@ -198,8 +198,8 @@ function showAdminGroupRemoveWindow(parent,id) { SOAPUsername: globalConfig.soap.username, SOAPPassword: globalConfig.soap.password, SOAPAuthType: globalConfig.soap.authtype, - SOAPModule: 'AdminGroups', - SOAPFunction: 'removeAdminGroup', + SOAPModule: 'AdminUserGroups', + SOAPFunction: 'removeAdminUserGroup', SOAPParams: 'ID' } });