Browse Source

Add ability to disable a user.

Mark Crane 13 years ago
parent
commit
ed34223e68

+ 5 - 0
core/users/app_config.php

@@ -160,6 +160,11 @@
 		$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = '';
 		$apps[$x]['db'][$y]['fields'][$z]['deprecated'] = 'true';
 		$z++;
+		$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = 'user_enabled';
+		$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';
+		$apps[$x]['db'][$y]['fields'][$z]['description']['en'] = '';
+		$apps[$x]['db'][$y]['fields'][$z]['deprecated'] = 'true';
+		$z++;
 		$apps[$x]['db'][$y]['fields'][$z]['name']['text'] = 'user_add_user';
 		$apps[$x]['db'][$y]['fields'][$z]['name']['deprecated'] = 'useradduser';
 		$apps[$x]['db'][$y]['fields'][$z]['type'] = 'text';

+ 24 - 0
core/users/app_defaults.php

@@ -129,6 +129,7 @@
 					//get the user_uuid
 						$sql = "select user_uuid from v_users ";
 						$sql .= "where username = '".$row['username']."' ";
+						$sql .= "and user_enabled = 'true' ";
 						$prep_statement_sub = $db->prepare($sql);
 						$prep_statement_sub->execute();
 						$sub_result = $prep_statement_sub->fetch(PDO::FETCH_ASSOC);
@@ -144,6 +145,7 @@
 				else {
 					//get the number of users
 						$sql = "select count(*) as num_rows from v_users ";
+						$sql .= "where user_enabled = 'true' ";
 						$prep_statement_sub = $db->prepare($sql);
 						$prep_statement_sub->execute();
 						$sub_result = $prep_statement_sub->fetch(PDO::FETCH_ASSOC);
@@ -152,6 +154,7 @@
 					if ($num_rows == 1) {
 						//get the user_uuid
 							$sql = "select user_uuid from v_users ";
+							$sql .= "and user_enabled = 'true' ";
 							$prep_statement_sub = $db->prepare($sql);
 							$prep_statement_sub->execute();
 							$sub_result = $prep_statement_sub->fetch(PDO::FETCH_ASSOC);
@@ -166,4 +169,25 @@
 				}
 			}
 	}
+
+//if there are no permissions listed in v_group_permissions then set the default permissions
+	$sql = "select count(*) as count from v_users ";
+	$sql .= "where domain_uuid = '$domain_uuid' ";
+	$sql .= "and user_enabled is null ";
+	$prep_statement = $db->prepare($sql);
+	$prep_statement->execute();
+	$sub_result = $prep_statement->fetch(PDO::FETCH_ASSOC);
+	unset ($prep_statement);
+	if ($sub_result['count'] > 0) {
+		//send output
+			if ($display_type == "text") {
+				echo "	Users:	set enabled=true\n";
+			}
+		//set the user_enabled to true
+			$sql = "update v_users set ";
+			$sql .= "user_enabled = 'true' ";
+			$db->exec($sql);
+			unset($sql);
+	}
+
 ?>

+ 1 - 0
core/users/signup.php

@@ -65,6 +65,7 @@ if (count($_POST)>0 && check_str($_POST["persistform"]) != "1") {
 		$sql = "SELECT * FROM v_users ";
 		$sql .= "where domain_uuid = '$domain_uuid' ";
 		$sql .= "and username = '$username' ";
+		$sql .= "and user_enabled = 'true' ";
 		$prep_statement = $db->prepare(check_sql($sql));
 		$prep_statement->execute();
 		if (count($prep_statement->fetchAll(PDO::FETCH_NAMED)) > 0) {

+ 2 - 2
core/users/userdelete.php

@@ -38,10 +38,10 @@ else {
 	$user_uuid = check_str($_GET["id"]);
 
 //get the username from v_users
-	$sql = "";
-	$sql .= "select * from v_users ";
+	$sql = "select * from v_users ";
 	$sql .= "where domain_uuid = '$domain_uuid' ";
 	$sql .= "and user_uuid = '$user_uuid' ";
+	$sql .= "and user_enabled = 'true' ";
 	$prep_statement = $db->prepare(check_sql($sql));
 	$prep_statement->execute();
 	$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);

+ 8 - 8
core/users/userlist.php

@@ -85,11 +85,11 @@ echo "	<td align=\"center\">\n";
 	echo "</tr>\n";
 
 //get the user list from the database
-	$sql = "";
-	$sql .= " select * from v_users ";
-	$sql .= " where domain_uuid = '$domain_uuid' ";
+	$sql = " select * from v_users ";
+	$sql .= "where domain_uuid = '$domain_uuid' ";
+	$sql .= "and user_enabled = 'true' ";
 	if (strlen($field_name) > 0 && strlen($field_value) > 0) {
-		$sql .= " and $field_name = '$field_value' ";
+		$sql .= "and $field_name = '$field_value' ";
 	}
 	if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
 	$prep_statement = $db->prepare(check_sql($sql));
@@ -104,11 +104,11 @@ echo "	<td align=\"center\">\n";
 	list($paging_controls, $rows_per_page, $var_3) = paging($num_rows, $param, $rows_per_page); 
 	$offset = $rows_per_page * $page; 
 
-	$sql = "";
-	$sql .= " select * from v_users ";
-	$sql .= " where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+	$sql = "select * from v_users ";
+	$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+	$sql .= "and user_enabled = 'true' ";
 	if (strlen($field_name) > 0 && strlen($field_value) > 0) {
-		$sql .= " and $field_name like '%$field_value%' ";
+		$sql .= "and $field_name like '%$field_value%' ";
 	}
 	if (strlen($order_by)> 0) { 
 		$sql .= "order by $order_by $order "; 

+ 33 - 2
core/users/usersupdate.php

@@ -51,6 +51,7 @@ else {
 	$sql = "select * from v_users ";
 	$sql .= "where domain_uuid = '$domain_uuid' ";
 	$sql .= "and user_uuid = '$user_uuid' ";
+	$sql .= "and user_enabled = 'true' ";
 	$prep_statement = $db->prepare(check_sql($sql));
 	$prep_statement->execute();
 	$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -118,12 +119,15 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") {
 	$user_time_zone = check_str($_POST["user_time_zone"]);
 	$contact_uuid = check_str($_POST["contact_uuid"]);
 	$group_member = check_str($_POST["group_member"]);
+	$user_enabled = check_str($_POST["user_enabled"]);
 
 	//if (strlen($password) == 0) { $msg_error .= "Password cannot be blank.<br>\n"; }
 	//if (strlen($username) == 0) { $msg_error .= "Please provide the username.<br>\n"; }
 	if ($password != $confirm_password) { $msg_error .= "Passwords did not match.<br>\n"; }
 	//if (strlen($contact_uuid) == 0) { $msg_error .= "Please provide an email.<br>\n"; }
 	//if (strlen($user_time_zone) == 0) { $msg_error .= "Please provide an time zone.<br>\n"; }
+	if (strlen($user_enabled) == 0) { $msg_error .= "Please provide an enable or disable the user.<br>\n"; }
+
 	if ($msg_error) {
 		require_once "includes/header.php";
 		echo "<div align='center'>";
@@ -240,6 +244,7 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") {
 				$sql .= "salt = '".$salt."', ";
 		}
 		$sql .= "user_status = '$user_status', ";
+		$sql .= "user_enabled = '$user_enabled', ";
 		if (strlen($contact_uuid) == 0) {
 			$sql .= "contact_uuid = null ";
 		}
@@ -294,9 +299,10 @@ else {
 		}
 	}
 	else {
-			$sql .= "where domain_uuid = '$domain_uuid' ";
-			$sql .= "and username = '$username' ";
+		$sql .= "where domain_uuid = '$domain_uuid' ";
+		$sql .= "and username = '$username' ";
 	}
+	$sql .= "and user_enabled = 'true' ";
 	$prep_statement = $db->prepare(check_sql($sql));
 	$prep_statement->execute();
 	$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -586,6 +592,31 @@ else {
 	echo "	</td>\n";
 	echo "	</tr>\n";
 
+	echo "<tr>\n";
+	echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
+	echo "    Enabled:\n";
+	echo "</td>\n";
+	echo "<td class='vtable' align='left'>\n";
+	echo "    <select class='formfld' name='user_enabled'>\n";
+	echo "    <option value=''></option>\n";
+	if ($user_enabled == "true" || $user_enabled == "") { 
+		echo "    <option value='true' selected='selected'>true</option>\n";
+	}
+	else {
+		echo "    <option value='true'>true</option>\n";
+	}
+	if ($user_enabled == "false") { 
+		echo "    <option value='false' selected='selected'>false</option>\n";
+	}
+	else {
+		echo "    <option value='false'>false</option>\n";
+	}
+	echo "    </select>\n";
+	echo "<br />\n";
+	echo "Enable/disable this user.\n";
+	echo "</td>\n";
+	echo "</tr>\n";	
+
 	echo "	</table>";
 	echo "<br>";
 

+ 1 - 0
includes/checkauth.php

@@ -69,6 +69,7 @@ session_start();
 			$sql = "select * from v_users ";
 			$sql .= "where domain_uuid=:domain_uuid ";
 			$sql .= "and username=:username ";
+			$sql .= "and (user_enabled = 'true' or user_enabled is null) ";
 			$prep_statement = $db->prepare(check_sql($sql));
 			$prep_statement->bindParam(':domain_uuid', $domain_uuid);
 			$prep_statement->bindParam(':username', check_str($_REQUEST["username"]));

+ 2 - 2
includes/directory.php

@@ -159,10 +159,10 @@ if (!function_exists('sync_directory')) {
 				//print_r($username_array);
 				foreach ($username_array as &$username) {
 					if (strlen($username) > 0) {
-						$sql = "";
-						$sql .= "select * from v_users ";
+						$sql = "select * from v_users ";
 						$sql .= "where domain_uuid = '$domain_uuid' ";
 						$sql .= "and username = '$username' ";
+						$sql .= "and user_enabled = 'true' ";
 						$prep_statement = $db->prepare(check_sql($sql));
 						$prep_statement->execute();
 						$tmp_result = $prep_statement->fetchAll(PDO::FETCH_NAMED);

+ 2 - 0
includes/lib_functions.php

@@ -554,6 +554,7 @@
 			$sql = "select * from v_users ";
 			$sql .= "where domain_uuid = '$domain_uuid' ";
 			$sql .= "and username = '".$username."' ";
+			//$sql .= "and user_enabled = 'true' ";
 			$prep_statement = $db->prepare(check_sql($sql));
 			$prep_statement->execute();
 			$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
@@ -574,6 +575,7 @@
 				$sql = "select * from v_users ";
 				$sql .= "where domain_uuid = '$domain_uuid' ";
 				$sql .= "and username = '$username' ";
+				//$sql .= "and user_enabled = 'true' ";
 				$prep_statement = $db->prepare(check_sql($sql));
 				$prep_statement->execute();
 				$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);

+ 7 - 12
includes/lib_switch.php

@@ -304,7 +304,7 @@ function event_socket_request($fp, $cmd) {
 				$response .= $buffer;
 			}
 
-			if ($contentlength == 0) { //if content length is already don't process again
+			if ($contentlength == 0) { //if the content has length don't process again
 				if (strlen(trim($buffer)) > 0) { //run only if buffer has content
 					$temparray = explode(":", trim($buffer));
 					if ($temparray[0] == "Content-Length") {
@@ -315,7 +315,7 @@ function event_socket_request($fp, $cmd) {
 
 			usleep(20); //allow time for reponse
 
-			//optional because of script timeout //don't let while loop become endless
+			//prevent an endless loop //optional because of script timeout
 			if ($i > 1000000) { break; }
 
 			if ($contentlength > 0) { //is contentlength set
@@ -1932,9 +1932,6 @@ function save_extension_xml() {
 		//syncrhonize the phone directory
 			sync_directory();
 
-		//apply settings reminder
-			$_SESSION["reload_xml"] = true;
-
 		//$cmd = "api reloadxml";
 		//event_socket_request_cmd($cmd);
 		//unset($cmd);
@@ -2895,8 +2892,6 @@ function save_hunt_group_xml() {
 	//save the dialplan xml files
 		save_dialplan_xml();
 
-	//apply settings reminder
-		$_SESSION["reload_xml"] = true;
 } //end huntgroup function lua
 
 
@@ -3433,6 +3428,7 @@ if (!function_exists('sync_directory')) {
 		//get a list of extensions and the users assigned to them
 			$sql = "select * from v_extensions ";
 			$sql .= "where domain_uuid = '$domain_uuid' ";
+			$sql .= "and extension_enabled = 'true'; ";
 			$prep_statement = $db->prepare(check_sql($sql));
 			$prep_statement->execute();
 			$x = 0;
@@ -3448,6 +3444,7 @@ if (!function_exists('sync_directory')) {
 						$sql = "select * from v_users ";
 						$sql .= "where domain_uuid = '$domain_uuid' ";
 						$sql .= "and username = '$username' ";
+						$sql .= "and user_enabled = 'true' ";
 						$prep_statement = $db->prepare(check_sql($sql));
 						$prep_statement->execute();
 						$tmp_result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
@@ -3560,8 +3557,6 @@ if (!function_exists('sync_directory')) {
 			fwrite($fout, $tmp);
 			fclose($fout);
 
-		//apply settings reminder
-			$_SESSION["reload_xml"] = true;
 	} //end sync_directory
 } //end if function exists
 
@@ -3672,8 +3667,7 @@ if (!function_exists('save_ivr_menu_xml')) {
 					$tmp .= "		max-timeouts=\"$ivr_menu_max_timeouts\"\n";
 					$tmp .= "		digit-len=\"$ivr_menu_digit_len\">\n";
 
-					$sub_sql = "";
-					$sub_sql .= "select * from v_ivr_menu_options ";
+					$sub_sql = "select * from v_ivr_menu_options ";
 					$sub_sql .= "where ivr_menu_uuid = '$ivr_menu_uuid' ";
 					$sub_sql .= "and domain_uuid = '$domain_uuid' ";
 					$sub_sql .= "order by ivr_menu_option_order asc "; 
@@ -4174,11 +4168,12 @@ if (!function_exists('save_call_center_xml')) {
 				fwrite($fout, $file_contents);
 				fclose($fout);
 
-			//syncrhonize the configuration
+			//save the dialplan xml files
 				save_dialplan_xml();
 
 			//apply settings reminder
 				$_SESSION["reload_xml"] = true;
+
 		}
 	}
 }