diff --git a/webui/wisp-user-add.php b/webui/wisp-user-add.php index 927101be3484677531f2db4b46c193dfd665f5f1..b5ec023d3253b6cda5e2dd0f6d86c31aa620fecf 100644 --- a/webui/wisp-user-add.php +++ b/webui/wisp-user-add.php @@ -79,7 +79,7 @@ if (!isset($_POST['frmaction'])) { <tr> <td class="entrytitle">Location</td> <td> - <select name="user_location"> + <select name="user_location"> <option selected="selected" value="NULL">No location</option> <?php $sql = "SELECT @@ -144,143 +144,129 @@ if (isset($_POST['frmaction']) && $_POST['frmaction'] == "insert") { <?php - # Check for empty values - $emptyItem = 0; - foreach ($_POST as $key => $value) { - if (empty($value)) { - $emptyItem = 1; - } - } - - if ($emptyItem == 1) { - -?> - - <div class="warning">One or more fields have been left empty</div> - -<?php - - } else { - $db->beginTransaction(); # Insert into users table - $usersStatement = $db->prepare("INSERT INTO ${DB_TABLE_PREFIX}users (Username) VALUES (?)"); - $userResult = $usersStatement->execute(array( - $_POST['user_name'], + $stmt = $db->prepare("INSERT INTO ${DB_TABLE_PREFIX}users (Username) VALUES (?)"); + $res = $stmt->execute(array($_POST['user_name'])); + + # Grab inserted ID + $userID = $db->lastInsertId(); + + # FIXME Check for empty values for certain fields + # Check if userID is integer and > 0 + if (is_int($userID) && $userID > 0) { + + # Insert MAC Address + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) + VALUES + ($userID,'Calling-Station-Id','||==',?) + "); + + $res = $stmt->execute(array($_POST['user_mac_address'])); + + if ($res) { + # Insert IP Address + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) + VALUES + ($userID,'Framed-IP-Address','+=',?) + "); + + $res = $stmt->execute(array($_POST['user_ip_address'])); + } + + if ($res) { + # Insert data limit + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) + VALUES + ($userID,'SMRadius-Capping-Traffic-Limit','==',?) + "); + + $res = $stmt->execute(array($_POST['user_data_limit'])); + } + + if ($res) { + # Insert time limit + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) + VALUES + ($userID,'SMRadius-Capping-UpTime-Limit','==',?) + "); + + $res = $stmt->execute(array($_POST['user_time_limit'])); + } + + if ($res) { + # Insert password + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) + VALUES + ($userID,'User-Password','==',?) + "); + + $res = $stmt->execute(array($_POST['user_password'])); + } + + if ($res) { + # Insert user data + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}wisp_userdata (UserID, FirstName, LastName, Email, Phone) + VALUES + ($userID,?,?,?,?) + "); + + $res = $stmt->execute(array( + $_POST['user_first_name'], + $_POST['user_last_name'], + $_POST['user_email'], + $_POST['user_phone'] )); - - - # Get user ID to insert into other tables - $getUserID = $db->query("SELECT ID FROM ${DB_TABLE_PREFIX}users WHERE Username = ".$db->quote($_POST['user_name'])); - $resultRow = $getUserID->fetchObject(); - $userID = $resultRow->id; - - - # Insert MAC Address - $userMACAddressStatement = $db->prepare("INSERT INTO - ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) - VALUES - ($userID,'Calling-Station-Id','||==',?) - "); - - $userMACAddressResult = $userMACAddressStatement->execute(array( - $_POST['user_mac_address'], - )); - - - # Insert IP Address - $userIPAddressStatement = $db->prepare("INSERT INTO - ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) - VALUES - ($userID,'Framed-IP-Address','+=',?) - "); - - $userIPAddressResult = $userIPAddressStatement->execute(array( - $_POST['user_ip_address'], - )); - - - # Insert data limit - $userDataStatement = $db->prepare(" INSERT INTO - ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) - VALUES - ($userID,'SMRadius-Capping-Traffic-Limit',':=',?) - "); - - $userDataResult = $userDataStatement->execute(array( - $_POST['user_data_limit'], - )); - - - # Insert time limit - $userTimeStatement = $db->prepare(" INSERT INTO - ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) - VALUES - ($userID,'SMRadius-Capping-UpTime-Limit',':=',?) - "); - - $userTimeResult = $userTimeStatement->execute(array( - $_POST['user_time_limit'], - )); - - - # Insert password - $userPasswordStatement = $db->prepare(" INSERT INTO - ${DB_TABLE_PREFIX}user_attributes (UserID,Name,Operator,Value) - VALUES - ($userID,'User-Password','==',?) - "); - - $userPasswordResult = $userPasswordStatement->execute(array( - $_POST['user_password'], - )); - - - # Insert user data - $userDataStatement = $db->prepare(" INSERT INTO - ${DB_TABLE_PREFIX}wisp_userdata (UserID, FirstName, LastName, Email, Phone) - VALUES - ($userID,?,?,?,?) - "); - - $userDataResult = $userDataStatement->execute(array( - $_POST['user_first_name'], - $_POST['user_last_name'], - $_POST['user_email'], - $_POST['user_phone'], - )); - - $userLocationStatement = $db->prepare(" INSERT INTO - ${DB_TABLE_PREFIX}wisp_userdata (LocationID) - VALUES - (?) - "); - - $userLocationResult = $userLocationStatement->execute(array($_POST['user_location'],)); - - # Was it successful? - if ($userDataResult && $userResult && $userIPAddressResult && $userDataResult && $userTimeResult && $userPasswordResult) { - + } + + if (!empty($_POST['user_location'])) { + # Insert user location + $stmt = $db->prepare(" + INSERT INTO + ${DB_TABLE_PREFIX}wisp_userdata (LocationID) + VALUES + (".$db->quote($_POST['user_location']).") + "); + + $res = $stmt->execute(array($_POST['user_location'])); + } + + # Was it successful? + if ($res) { ?> - - <div class="notice">User added</div> - + <div class="notice">User added</div> <?php - $db->commit(); + $db->commit(); + } else { +?> + <div class="warning">Failed to add user</div> + <div class="warning"><?php print_r($db->errorInfo()) ?></div> +<?php + $db->rollback(); + } } else { - ?> - - <div class="warning">Failed to add user</div> + <div class="warning">Cannot find User ID</div> <div class="warning"><?php print_r($db->errorInfo()) ?></div> - + <?php print_r($userID); ?> <?php $db->rollback(); } } -} printFooter();