<?php
# Policy add
# Copyright (C) 2008, LinuxRulz
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


include_once("includes/header.php");
include_once("includes/footer.php");
include_once("includes/db.php");


$db = connect_db();


printHeader(array(
));


if (!isset($_POST['frmaction'])) {

?>

	<p class="pageheader">Add WiSP User</p>

	<!-- Add user input fields -->
	<form method="post" action="wisp-user-add.php">
		<div>
			<input type="hidden" name="frmaction" value="insert" />
		</div>
		<table class="entry">
			<tr>
				<td class="textcenter" colspan="2">Account Information</td>
			</tr>
			<tr>
				<td><div></div><td>
			</tr>
			<tr>
				<td class="entrytitle">User Name</td>
				<td><input type="text" name="user_name" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Password</td>
				<td><input type="password" name="user_password" /></td>
			</tr>
			<tr>
				<td><div></div><td>
			</tr>
			<tr>
				<td class="textcenter" colspan="2">Private Information</td>
			</tr>
			<tr>
				<td><div></div><td>
			</tr>
			<tr>
				<td class="entrytitle">First Name</td>
				<td><input type="text" name="user_first_name" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Last Name</td>
				<td><input type="text" name="user_last_name" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Phone</td>
				<td><input type="text" name="user_phone" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Location</td>
				<td><input type="text" name="user_location" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Email Address</td>
				<td><input type="text" name="user_email" /></td>
			</tr>
			<tr>
				<td class="entrytitle">MAC Address</td>
				<td><input type="text" name="user_mac_address" /></td>
			</tr>
			<tr>
				<td class="entrytitle">IP Address</td>
				<td><input type="text" name="user_ip_address" /></td>
			</tr>
			<!--<tr>
				<td class="entrytitle">Pool Name</td>
				<td><input type="text" name="pool_name" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Group Name</td>
				<td><input type="text" name="group_name" /></td>
			</tr>-->
			<tr>
				<td class="entrytitle">Data Usage Limit (MB)</td>
				<td><input type="text" name="user_data_limit" /></td>
			</tr>
			<tr>
				<td class="entrytitle">Time Limit (Min)</td>
				<td><input type="text" name="user_time_limit" /></td>
			</tr>
			<tr>
				<td class="textcenter" colspan="2"><input type="submit" value="Submit" /></td>
			</tr>
		</table>
	</form>

<?php

}
	
if ($_POST['frmaction'] == "insert") {

?>

	<p class="pageheader">Add user</p>

<?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'],
				));
		

		# 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-Time-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}userdata (UserID, FirstName, LastName, Location, Email, Phone) 
											VALUES 
														($userID,?,?,?,?,?)
											");

		$userDataResult = $userDataStatement->execute(array(
															$_POST['user_first_name'],
															$_POST['user_last_name'],
															$_POST['user_location'],
															$_POST['user_email'],
															$_POST['user_phone'],
															));
												


		# Was it successful?
		if ($userDataResult && $userResult && $userIPAddressResult && $userDataResult && $userTimeResult && $userPasswordResult) {

?>

			<div class="notice">User added</div>

<?php
			$db->commit();			

		} else {

?>

			<div class="warning">Failed to add user</div>
			<div class="warning"><?php print_r($db->errorInfo()) ?></div>

<?php
			$db->rollback();
		}
	}
}


printFooter();

# vim: ts=4
?>