From 862a75f880509c4f053deb6f47fd61f09f62221e Mon Sep 17 00:00:00 2001
From: Robert Anderson <randerson@lbsd.net>
Date: Wed, 13 May 2009 09:26:08 +0000
Subject: [PATCH] Small cosmetic changes Link group to user Remove user
 attribute fixes

---
 webgui/ajax.php                               | 24 ++++++++--
 .../ajax/functions/AdminUserAttributes.php    | 12 +++++
 .../ajax/functions/AdminUserGroups.php        | 12 +++++
 webgui/js/app/windows/AdminUserAttributes.js  |  8 ++--
 webgui/js/app/windows/AdminUserGroups.js      | 45 ++++++++++++++-----
 5 files changed, 82 insertions(+), 19 deletions(-)

diff --git a/webgui/ajax.php b/webgui/ajax.php
index a0d3fd0b..29aaaca9 100644
--- a/webgui/ajax.php
+++ b/webgui/ajax.php
@@ -96,8 +96,8 @@
 			# Build hash and push into param list
 			$search = array(
 				'Filter' => isset($_REQUEST['filter']) ? $_REQUEST['filter'] : '',
-				'Start' => $_REQUEST['start'],
-				'Limit' => $_REQUEST['limit'],
+				'Start' => isset($_REQUEST['start']) ? $_REQUEST['start'] : NULL,
+				'Limit' => isset($_REQUEST['limit']) ? $_REQUEST['limit'] : NULL,
 				'Sort' => isset($_REQUEST['sort']) ? $_REQUEST['sort'] : '',
 				'SortDirection' => isset($_REQUEST['dir']) ? $_REQUEST['dir'] : '',
 			);
@@ -150,7 +150,16 @@
 
 	switch ($function) {
 
-		# AdminUserGroups.js functions
+		# addAdminUserGroup.js functions
+		case "addAdminUserGroup":
+
+			$res = addAdminUserGroup($soapParams);
+			if (isset($res)) {
+				ajaxException($res);
+			}
+
+			break;
+
 		case "removeAdminUserGroup":
 
 			$res = removeAdminUserGroup($soapParams);
@@ -195,6 +204,15 @@
 			echo json_encode($res->export());
 			break;
 
+		case "removeAdminUserAttribute":
+
+			$res = removeAdminUserAttribute($soapParams);
+			if (isset($res)) {
+				ajaxException($res);
+			}
+
+			break;
+
 		# WiSPUsers.js functions
 		case "updateWiSPUser":
 
diff --git a/webgui/include/ajax/functions/AdminUserAttributes.php b/webgui/include/ajax/functions/AdminUserAttributes.php
index afd774b7..69e11d67 100644
--- a/webgui/include/ajax/functions/AdminUserAttributes.php
+++ b/webgui/include/ajax/functions/AdminUserAttributes.php
@@ -3,6 +3,18 @@
 include_once("include/db.php");
 
 
+# Remove user attribute
+function removeAdminUserAttribute($params) {
+	global $db;
+
+	$res = DBDo("DELETE FROM user_attributes WHERE ID = ?",array($params[0]));
+	if (!is_numeric($res)) {
+		return $res;
+	}
+
+	return NULL;
+}
+
 # Return list of attributes
 function getAdminUserAttributes($params) {
 	global $db;
diff --git a/webgui/include/ajax/functions/AdminUserGroups.php b/webgui/include/ajax/functions/AdminUserGroups.php
index d06a7353..2f73f9a9 100644
--- a/webgui/include/ajax/functions/AdminUserGroups.php
+++ b/webgui/include/ajax/functions/AdminUserGroups.php
@@ -3,6 +3,18 @@
 include_once("include/db.php");
 
 
+# Link user to group
+function addAdminUserGroup($params) {
+	global $db;
+
+	$res = DBDo("INSERT INTO users_to_groups (UserID,GroupID) VALUES (?,?)",array($params[0]['UserID'],$params[0]['GroupID']));
+	if (!is_numeric($res)) {
+		return $res;
+	}
+
+	return NULL;
+}
+
 # Unlink user from group
 function removeAdminUserGroup($params) {
 	global $db;
diff --git a/webgui/js/app/windows/AdminUserAttributes.js b/webgui/js/app/windows/AdminUserAttributes.js
index 36183b78..540483bf 100644
--- a/webgui/js/app/windows/AdminUserAttributes.js
+++ b/webgui/js/app/windows/AdminUserAttributes.js
@@ -222,14 +222,14 @@ function showAdminGroupAddEditWindow(id) {
 
 
 // Display edit/add form
-function showAdminGroupRemoveWindow(parent,id) {
+function showAdminUserAttributeRemoveWindow(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 remove this attribute?",
 		icon: Ext.MessageBox.ERROR,
 		buttons: Ext.Msg.YESNO,
 		modal: false,
@@ -244,8 +244,8 @@ function showAdminGroupRemoveWindow(parent,id) {
 						SOAPUsername: globalConfig.soap.username,
 						SOAPPassword: globalConfig.soap.password,
 						SOAPAuthType: globalConfig.soap.authtype,
-						SOAPModule: 'AdminGroups',
-						SOAPFunction: 'removeAdminGroup',
+						SOAPModule: 'AdminUserAttributes',
+						SOAPFunction: 'removeAdminUserAttribute',
 						SOAPParams: 'ID'
 					}
 				});
diff --git a/webgui/js/app/windows/AdminUserGroups.js b/webgui/js/app/windows/AdminUserGroups.js
index 41e371eb..f1109a9b 100644
--- a/webgui/js/app/windows/AdminUserGroups.js
+++ b/webgui/js/app/windows/AdminUserGroups.js
@@ -1,6 +1,6 @@
 
 
-function showAdminUserGroupsWindow(id) {
+function showAdminUserGroupsWindow(userID) {
 
 	var AdminUserGroupsWindow = new Ext.ux.GenericGridWindow(
 		// Window config
@@ -22,7 +22,7 @@ function showAdminUserGroupsWindow(id) {
 					tooltip:'Add group',
 					iconCls:'add',
 					handler: function() {
-						showAdminUserGroupAddEditWindow();
+						showAdminUserGroupAddWindow(userID);
 					}
 				}, 
 				'-', 
@@ -73,7 +73,7 @@ function showAdminUserGroupsWindow(id) {
 		// Store config
 		{
 			baseParams: {
-				ID: id,
+				ID: userID,
 				SOAPUsername: globalConfig.soap.username,
 				SOAPPassword: globalConfig.soap.password,
 				SOAPAuthType: globalConfig.soap.authtype,
@@ -96,7 +96,7 @@ function showAdminUserGroupsWindow(id) {
 
 
 // Display edit/add form
-function showAdminGroupAddEditWindow(id) {
+function showAdminUserGroupAddWindow(userID,id) {
 
 	var submitAjaxConfig;
 
@@ -108,15 +108,17 @@ function showAdminGroupAddEditWindow(id) {
 			SOAPFunction: 'updateAdminGroup',
 			SOAPParams: 
 				'0:ID,'+
-				'0:Name'
+				'0:GroupID'
 		};
 
 	// We doing an Add
 	} else {
 		submitAjaxConfig = {
-			SOAPFunction: 'createAdminGroup',
+			UserID: userID,
+			SOAPFunction: 'addAdminUserGroup',
 			SOAPParams: 
-				'0:Name'
+				'0:UserID,'+
+				'0:GroupID'
 		};
 	}
 	
@@ -143,11 +145,30 @@ function showAdminGroupAddEditWindow(id) {
 			},
 			items: [
 				{
-					fieldLabel: 'Name',
-					name: 'Name',
-					vtype: 'usernamePart',
-					maskRe: usernamePartRe,
-					allowBlank: false
+					xtype: 'combo',
+					//id: 'combo',
+					fieldLabel: 'Group',
+					name: 'Group',
+					allowBlank: false,
+					width: 160,
+
+					store: new Ext.ux.JsonStore({
+						sortInfo: { field: "Name", direction: "ASC" },
+						baseParams: {
+							SOAPUsername: globalConfig.soap.username,
+							SOAPPassword: globalConfig.soap.password,
+							SOAPAuthType: globalConfig.soap.authtype,
+							SOAPModule: 'AdminUserGroups',
+							SOAPFunction: 'getAdminGroups',
+							SOAPParams: '__null,__search'
+						}
+					}),
+					displayField: 'Name',
+					valueField: 'ID',
+					hiddenName: 'GroupID',
+					forceSelection: true,
+					triggerAction: 'all',
+					editable: false
 				},
 			],
 		},
-- 
GitLab