<?
// Wriiten by Spike^ekipS <spike@spikeekips.net>

//-------------------------------------------------- global include
include_once "./setting.php";

include_once $global["root"] . "/include/handle.php";
include_once $global["root"] . "/include/print_array.php";
include_once $global["root"] . "/include/print_byte.php";

include_once $global["root"] . "/lib/Site.php";
include_once $global["root"] . "/lib/User.php";
include_once $global["root"] . "/lib/Domain.php";

$Site = new Site;
$Site->init("domain", "_GET");

extract($_POST);

if (! $_POST["user_id"]) goprev();

include_once $global["lang"] . "/" . $_SESSION["config_lang"] . ".php";

$Domain = new Domain;
$Domain->get_info($_SESSION["config_domain"]);

// data handling.
while (list($i, $j) = each($_POST)) {
	if (! ereg("^user_", $i)) continue;
	if ($i == "user_id") continue;
	if ($i == "user_alias") continue;

	if ($i == "user_quota") $j = intval($j * 1000000);
	if ($i == "user_message_size_limit") $j = intval($j * 1000000);
	if ($i == "user_document_size_limit") $j = intval($j * 1000000);

	if ($i == "user_password" and trim($j) == "") {
		continue;
	} else if ($i == "user_password") {
		$b["password"] = sha1($j);
		$b["password_plain"] = $j;
		continue;
	}

	// check value
	if ($i == "user_quota" and $j > $Domain->info["quota"]) {
		$_SESSION["user_msg"]["content"] =
			sprintf($string["error13"], print_byte(intval($Domain->info["quota"])));
		goprev();
	}

	if ($i == "user_message_size_limit" and $j > $Domain->info["message_size_limit"]) {
		$_SESSION["user_msg"]["content"] =
			sprintf($string["error13"],
				print_byte(intval($Domain->info["message_size_limit"])));
		goprev();
	}

	if ($i == "user_document_size_limit" and $j > $Domain->info["document_size_limit"]) {
		$_SESSION["user_msg"]["content"] =
			sprintf($string["error13"],
				print_byte(intval($Domain->info["document_size_limit"])));
		goprev();
	}

	if ($i == "user_filter" and $j > $Domain->info["filter"]) {
		$_SESSION["user_msg"]["content"] =
			sprintf($string["error20"], $string["admin43"],
				intval($Domain->info["filter"]));
		goprev();
	}

	if ($i == "user_block_address" and $j > $Domain->info["block_address"]) {
		$_SESSION["user_msg"]["content"] =
			sprintf($string["error20"], $string["admin43"],
				intval($Domain->info["block_address"]));
		goprev();
		exit;
	}

	$b[ereg_replace("^user_", "", $i)] = $j;

}

while (list($i, $j) = each($b)) {
	$c[] = sprintf("%s = '%s'", $i, $j);
}

$Site->DB->transaction_start(true);

// user alias
if (array_key_exists("alias_name", $_POST) and $_POST["alias_name"] != "") {
	$User = new User();
	$retval =
		$User->add_alias($_POST["alias_name"], $_SESSION["config_domain"], $_POST["no"]);

	if ($retval !== true) {
		switch ($retval) {
			case (false) :
				$_SESSION["user_msg"]["content"] = $string["error22"];
			break;
			case ("-2") :
				$_SESSION["user_msg"]["content"] = $string["error23"];
			break;
			case ("-3") :
				$_SESSION["user_msg"]["content"] = $string["error24"];
			break;
			case ("-4") :
				$_SESSION["user_msg"]["content"] =
					sprintf($string["error25"], $_SESSION["config_user_limit"]);
			break;
		}

		$Site->end1();
		goprev();
	}

}


$Site->DB->query(sprintf("update user_priv set %s where id = '%s'",
	implode(", ", $c), $_POST["user_id"]));

$retval = $Site->DB->retval;
$Site->DB->close();

$url = sprintf("Location: %s/domain?mode=user&no=%s",
	$_SESSION["user_www_url"], $_POST["no"]);

if ($retval === true) {
	$_SESSION["user_msg"]["content"] = $string["msg"];
	$_SESSION["user_msg"]["type"] = "2";

	$Site->end1();

	Header($url);
	exit;
} else {
	$_SESSION["user_msg"]["content"] = $string["msg1"];

	$Site->end1();

	Header($url);
	exit;
}

/*
Description
-----------

Author
------
 Spike^ekipS <spike@spikeekips.net>

Changelog
---------

Usage
-----

*/

?>
