<?php

set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');

include_once('aur.inc.php');         # access AUR common functions
include_once('acctfuncs.inc.php');   # access Account specific functions

set_lang();                 # this sets up the visitor's language
check_sid();                # see if they're still logged in

$action = in_request("Action");

$need_userinfo = array(
	"DisplayAccount", "DeleteAccount", "AccountInfo", "UpdateAccount"
);

if (in_array($action, $need_userinfo)) {
	$row = account_details(in_request("ID"), in_request("U"));
	$PK = implode("\n", account_get_ssh_keys($row["ID"]));
}

/* This has to be done before the navigation headers are written,
 * because html_header() fetches the current username from the database,
 * which could be changed by process_account_form()
 */
if ($action == "UpdateAccount") {
	$update_account_message = '';
	/* Details for account being updated */
	/* Verify user permissions and that the request is a valid POST */
	if (can_edit_account($row) && check_token()) {
		/* Update the details for the existing account */
		list($success, $update_account_message) = process_account_form(
			"edit", "UpdateAccount",
			in_request("U"), in_request("T"), in_request("S"),
			in_request("E"), in_request("P"), in_request("C"),
			in_request("R"), in_request("L"), in_request("I"),
			in_request("K"), in_request("PK"), in_request("J"),
			in_request("ID"), $row["Username"]);
	}
}

if ($action == "AccountInfo") {
	html_header(__('Account') . ' ' . $row['Username']);
} else {
	html_header(__('Accounts'));
}

# Main page processing here
#
echo "<div class=\"box\">\n";
echo "  <h2>".__("Accounts")."</h2>\n";

if (isset($_COOKIE["AURSID"])) {
	if ($action == "SearchAccounts") {

		# security check
		#
		if (has_credential(CRED_ACCOUNT_SEARCH)) {
			# the user has entered search criteria, find any matching accounts
			#
			search_results_page(in_request("O"), in_request("SB"),
					in_request("U"), in_request("T"), in_request("S"),
					in_request("E"), in_request("R"), in_request("I"),
					in_request("K"));

		} else {
			# a non-privileged user is trying to access the search page
			#
			print __("You are not allowed to access this area.")."<br />\n";
		}

	} elseif ($action == "DisplayAccount") {
		# the user has clicked 'edit', display the account details in a form
		#
		if (empty($row)) {
			print __("Could not retrieve information for the specified user.");
		} else {
			/* Verify user has permission to edit the account */
			if (can_edit_account($row)) {
				display_account_form("UpdateAccount", $row["Username"],
					$row["AccountTypeID"], $row["Suspended"], $row["Email"],
					"", "", $row["RealName"], $row["LangPreference"],
					$row["IRCNick"], $row["PGPKey"], $PK,
					$row["InactivityTS"] ? 1 : 0, $row["ID"], $row["Username"]);
			} else {
				print __("You do not have permission to edit this account.");
			}
		}

	} elseif ($action == "DeleteAccount") {
		/* Details for account being deleted. */
		if (can_edit_account($row)) {
			$UID = $row['ID'];
			if (in_request('confirm') && check_token()) {
				user_delete($UID);
				header('Location: /');
			} else {
				$username = $row['Username'];
				include("account_delete.php");
			}
		} else {
			print __("You do not have permission to edit this account.");
		}
	} elseif ($action == "AccountInfo") {
		# no editing, just looking up user info
		#
		if (empty($row)) {
			print __("Could not retrieve information for the specified user.");
		} else {
			include("account_details.php");
		}

	} elseif ($action == "UpdateAccount") {
		print $update_account_message;

		if (!$success) {
			display_account_form("UpdateAccount", in_request("U"), in_request("T"),
				in_request("S"), in_request("E"), in_request("P"), in_request("C"),
				in_request("R"), in_request("L"), in_request("I"), in_request("K"),
				in_request("PK"), in_request("J"), in_request("ID"), $row["Username"]);
		}

	} else {
		if (has_credential(CRED_ACCOUNT_SEARCH)) {
			# display the search page if they're a TU/dev
			#
			print __("Use this form to search existing accounts.")."<br />\n";
			include('search_accounts_form.php');

		} else {
			print __("You are not allowed to access this area.");
		}
	}

} else {
	# visitor is not logged in
	#
	print __("You must log in to view user information.");
}

echo "</div>";

html_footer(AURWEB_VERSION);

?>