diff --git a/webgui/ajax.php b/webgui/ajax.php index 73911b31a339b7cc74403c639888733e24685a23..46e9427704985da8b701c66da67296d635b033a9 100644 --- a/webgui/ajax.php +++ b/webgui/ajax.php @@ -9,6 +9,7 @@ include_once("include/ajax/functions/WiSPUsers.php"); include_once("include/ajax/functions/AdminUserAttributes.php"); include_once("include/ajax/functions/AdminUserGroups.php"); + include_once("include/ajax/functions/AdminGroupAttributes.php"); define('RES_OK',0); define('RES_ERR',-1); @@ -150,6 +151,30 @@ switch ($function) { + # getAdminUserLogs.js functions + case "getAdminUserLogs": + + $rawData = getAdminUserLogs($soapParams); + + $res = new json_response; + $res->setID('ID'); + $res->addField('ID','int'); + $res->addField('AcctStatusType','int'); + $res->addField('ServiceType','int'); + $res->addField('FramedProtocol','int'); + $res->addField('NASPort','string'); + $res->addField('NASPortType','int'); + $res->addField('NASPortID','string'); + $res->addField('CallingStationID','string'); + $res->addField('CalledStationID','string'); + $res->addField('AcctSessionID','string'); + $res->addField('FramedIPAddress','string'); + $res->parseHash($rawData); + + echo json_encode($res->export()); + + break; + # addAdminUserGroup.js functions case "addAdminUserGroup": @@ -185,6 +210,64 @@ break; + # AdminGroupAttributes.js functions + case "addAdminGroupAttribute": + + $res = addAdminGroupAttribute($soapParams); + if (isset($res)) { + ajaxException($res); + } + + break; + + case "updateAdminGroupAttribute": + + $res = updateAdminGroupAttribute($soapParams); + if (isset($res)) { + ajaxException($res); + } + + break; + + case "getAdminGroupAttribute": + $rawData = getAdminGroupAttribute($soapParams); + + $res = new json_response; + $res->setID('ID'); + $res->addField('ID','int'); + $res->addField('Name','string'); + $res->parseHash($rawData); + + echo json_encode($res->export()); + break; + + case "getAdminGroupAttributes": + + $res = getAdminGroupAttributes($soapParams); + $rawData = $res[0]; $numResults = $res[1]; + + $res = new json_response; + $res->setID('ID'); + $res->addField('ID','int'); + $res->addField('Name','string'); + $res->addField('Operator','string'); + $res->addField('Value','string'); + $res->addField('Disabled','boolean'); + $res->parseArray($rawData); + $res->setDatasetSize($numResults); + + echo json_encode($res->export()); + break; + + case "removeAdminGroupAttribute": + + $res = removeAdminGroupAttribute($soapParams); + if (isset($res)) { + ajaxException($res); + } + + break; + # AdminUserAttributes.js functions case "addAdminUserAttribute": diff --git a/webgui/include/ajax/functions/AdminGroupAttributes.php b/webgui/include/ajax/functions/AdminGroupAttributes.php new file mode 100644 index 0000000000000000000000000000000000000000..c769b3f91a90f944e7b103d64d7b4702d82c728b --- /dev/null +++ b/webgui/include/ajax/functions/AdminGroupAttributes.php @@ -0,0 +1,108 @@ +<?php + +include_once("include/db.php"); + +# Add user attribute +function addAdminGroupAttribute($params) { + global $db; + + $res = DBDo("INSERT INTO group_attributes (GroupID,Name) VALUES (?,?)",array($params[0]['GroupID'],$params[0]['Name'])); + if (!is_numeric($res)) { + return $res; + } + + return NULL; +} + +# Remove user attribute +function removeAdminGroupAttribute($params) { + global $db; + + $res = DBDo("DELETE FROM group_attributes WHERE ID = ?",array($params[0])); + if (!is_numeric($res)) { + return $res; + } + + return NULL; +} + +# Edit attribute +function updateAdminGroupAttribute($params) { + global $db; + + $res = DBDo("UPDATE group_attributes SET Name = ? WHERE ID = ?",array($params[0]['Name'],$params[0]['ID'])); + if (!is_numeric($res)) { + return $res; + } + + return NULL; +} + +# Return specific attribute row +function getAdminGroupAttribute($params) { + global $db; + + + $res = DBSelect("SELECT ID, Name FROM group_attributes WHERE ID = ?",array($params[0])); + if (!is_object($res)) { + return $res; + } + + $resultArray = array(); + + $row = $res->fetchObject(); + + $resultArray['ID'] = $row->id; + $resultArray['Name'] = $row->name; + + return $resultArray; +} + +# Return list of attributes +function getAdminGroupAttributes($params) { + global $db; + + # Filters and sorts are the same here + $filtersorts = array( + 'ID' => 'group_attributes.ID', + 'Name' => 'group_attributes.Name', + 'Operator' => 'group_attributes.Operator', + 'Value' => 'group_attributes.Value', + 'Disabled' => 'group_attributes.Disabled' + ); + + $res = DBSelectSearch(" + SELECT + ID, Name, Operator, Value, Disabled + FROM + group_attributes + WHERE + GroupID = ".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 (!isset($sth)) { + return $res; + } + + $resultArray = array(); + + # loop through rows + while ($row = $sth->fetchObject()) { + $item = array(); + + $item['ID'] = $row->id; + $item['Name'] = $row->name; + $item['Operator'] = $row->operator; + $item['Value'] = $row->value; + $item['Disabled'] = $row->disabled; + + # push this row onto array + array_push($resultArray,$item); + } + + return array($resultArray,$numResults); +} + +?> diff --git a/webgui/index.html b/webgui/index.html index 2438088137598037d704c98c1a75b0df516548f3..ecb611db4203445b1a32bff794c5d6ac5f309827 100644 --- a/webgui/index.html +++ b/webgui/index.html @@ -76,6 +76,7 @@ <script type="text/javascript" src="js/app/windows/WiSPLocations.js"></script> <script type="text/javascript" src="js/app/windows/AdminUsers.js"></script> <script type="text/javascript" src="js/app/windows/AdminGroups.js"></script> + <script type="text/javascript" src="js/app/windows/AdminGroupAttributes.js"></script> <script type="text/javascript" src="js/app/windows/AdminRealms.js"></script> <script type="text/javascript" src="js/app/windows/AdminUserLogs.js"></script> <script type="text/javascript" src="js/app/windows/AdminUserAttributes.js"></script>