<?php
/*
** Application name: phpCollab
** Last Edit page: 02/08/2007
** Path by root: ../includes/calendar.php
** Authors: Ceam / Fullo
**
** =============================================================================
**
**               phpCollab - Project Managment 
**
** -----------------------------------------------------------------------------
** Please refer to license, copyright, and credits in README.TXT
**
** -----------------------------------------------------------------------------
** FILE: edituser.php
**
** DESC: Screen:	displays the details of a client user 
**
** HISTORY:
** 	02/08/2007	-	added Last Viewed Page code - Mindblender
**	
** -----------------------------------------------------------------------------
** TO-DO:
** 
**
** =============================================================================
*/


$checkSession = "true";
include_once('../includes/library.php');

if ($profilSession != "0") {
	headerFunction('../general/permissiondenied.php?'.session_name().'='.session_id());
	exit;
}

//case update user
if ($id != "") {

if ($id == "1" && $idSession == "1") {
	headerFunction("../preferences/updateuser.php?".session_name()."=".session_id());
	exit;
}

//case update user
if ($action == "update") {
if ($htaccessAuth == "true") {
	include("../includes/htpasswd.class.php");
	$Htpasswd = new Htpasswd;
}
	if (!ereg("^[A-Za-z0-9]+$", $un)) {
		$error = $strings["alpha_only"];
	} else {

//test if login already exists
		$tmpquery = "WHERE mem.login = '$un' AND mem.login != '$unOld'";
		$existsUser = new request();
		$existsUser->openMembers($tmpquery);
		$comptExistsUser = count($existsUser->mem_id);
			if ($comptExistsUser != "0") {
				$error = $strings["user_already_exists"];
			} else {

//replace quotes by html code in name and address
	$fn = convertData($fn);
	$tit = convertData($tit);
	$c = convertData($c);
	$em = convertData($em);
	$wp = convertData($wp);
	$hp = convertData($hp);
	$mp = convertData($mp);
	$fax = convertData($fax);
	$last_page = convertData($last_page);

	$tmpquery = "UPDATE ".$tableCollab["members"]." SET login='$un',name='$fn',title='$tit',email_work='$em',phone_work='$wp',phone_home='$hp',mobile='$mp',fax='$fax',comments='$c',profil='$perm',last_page='$last_page' WHERE id = '$id'";
	connectSql("$tmpquery");

if ($htaccessAuth == "true") {
	if ($un != $unOld) {
	$tmpquery = "WHERE tea.member = '$id'";
	$listProjects = new request();
	$listProjects->openTeams($tmpquery);
	$comptListProjects = count($listProjects->tea_id);

		if ($comptListProjects != "0") {
			for ($i=0;$i<$comptListProjects;$i++) {
				$Htpasswd->initialize("../files/".$listProjects->tea_pro_id[$i]."/.htpasswd");
				$Htpasswd->renameUser($unOld,$un);
			}
		}
	}
}

//test if new password set
		if ($pw !=  "") {

//test if 2 passwords match
			if ($pw != $pwa || $pwa == "") {
				$error = $strings["new_password_error"];
			} else {
				$pw = get_password($pw);

if ($htaccessAuth == "true") {
	if ($un == $unOld) {
	$tmpquery = "WHERE tea.member = '$id'";
	$listProjects = new request();
	$listProjects->openTeams($tmpquery);
	$comptListProjects = count($listProjects->tea_id);
	}

	if ($comptListProjects != "0") {
		for ($i=0;$i<$comptListProjects;$i++) {
			$Htpasswd->initialize("../files/".$listProjects->tea_pro_id[$i]."/.htpasswd");
			$Htpasswd->changePass($un,$pw);
		}
	}
}
				$tmpquery = "UPDATE ".$tableCollab["members"]." SET password='$pw' WHERE id = '$id'";
				connectSql("$tmpquery");
//if mantis bug tracker enabled
				if ($enableMantis == "true") {
// Call mantis function for user changes..!!!
					$f_access_level = $team_user_level; // Developer
					include ("../mantis/user_update.php");				
				}

				headerFunction("../users/listusers.php?msg=update&".session_name()."=".session_id());
				exit;
			}
		} else {
//if mantis bug tracker enabled
			if ($enableMantis == "true") {
// Call mantis function for user changes..!!!
				$f_access_level = $team_user_level; // Developer
				include ("../mantis/user_update.php");				
			}
			headerFunction("../users/listusers.php?msg=update&".session_name()."=".session_id());
			exit;
		}
			}
	}
}
$tmpquery = "WHERE mem.id = '$id'";
$detailUser = new request();
$detailUser->openMembers($tmpquery);
$comptDetailUser = count($detailUser->mem_id);

//test exists selected user, redirect to list if not
	if ($comptDetailUser == "0") {
		headerFunction("../users/listusers.php?msg=blankUser&".session_name()."=".session_id());
		exit;
	}

//set values in form
$un = $detailUser->mem_login[0];
$fn = $detailUser->mem_name[0];
$tit = $detailUser->mem_title[0];

$em = $detailUser->mem_email_work[0];
$wp = $detailUser->mem_phone_work[0];
$hp = $detailUser->mem_phone_home[0];
$mp = $detailUser->mem_mobile[0];
$fax = $detailUser->mem_fax[0];
$last_page = $detailUser->mem_last_page[0];
$c = $detailUser->mem_comments[0];
$perm = $detailUser->mem_profil[0];

$setTitle .= " : Edit User ($un)";

//set radio button with permissions value
	if ($perm == "1") {
		$checked1 = "checked";
	}
	if ($perm == "2") {
		$checked2 = "checked";
	}
	if ($perm == "3") {
		$checked3 = "checked";
	}
	if ($perm == "4") {
		$checked4 = "checked";
	}
	if ($perm == "5") {
		$checked5 = "checked";
	}
}

//case add user
if ($id == "") {
	$checked2 = "checked";

//case add user
	if ($action == "add") {
	if (!ereg("^[A-Za-z0-9]+$", $un)) {
		$error = $strings["alpha_only"];
	} else {

//test if login already exists
		$tmpquery = "WHERE mem.login = '$un'";
		$existsUser = new request();
		$existsUser->openMembers($tmpquery);
		$comptExistsUser = count($existsUser->mem_id);
			if ($comptExistsUser != "0") {
				$error = $strings["user_already_exists"];
			} else {

//test if 2 passwords match
				if ($pw != $pwa || $pw == "") {
					$error = $strings["new_password_error"];
				} else {

//replace quotes by html code in name and address
					$fn = convertData($fn);
					$tit = convertData($tit);
					$c = convertData($c);
					$pw = get_password($pw);
					$tmpquery1 = "INSERT INTO ".$tableCollab["members"]."(login,name,title,email_work,phone_work,phone_home,mobile,fax,comments,password,profil,created,organization,timezone) VALUES('$un','$fn','$tit','$em','$wp','$hp','$mp','$fax','$c','$pw','$perm','$dateheure','1','0')";
					connectSql("$tmpquery1");
					$tmpquery = $tableCollab["members"];
					last_id($tmpquery);
					$num = $lastId[0];
					unset($lastId);
					$tmpquery2 = "INSERT INTO ".$tableCollab["sorting"]."(member) VALUES('$num')";
					connectSql("$tmpquery2");
					$tmpquery3 = "INSERT INTO ".$tableCollab["notifications"]."(member,taskAssignment,removeProjectTeam,addProjectTeam,newTopic,newPost,statusTaskChange,priorityTaskChange,duedateTaskChange,clientAddTask) VALUES ('$num','0','0','0','0','0','0','0','0','0')";
					connectSql("$tmpquery3");
//if mantis bug tracker enabled
					if ($enableMantis == "true") {
// Call mantis function for user changes..!!!
						$f_access_level = $team_user_level; // Developer
						include ("../mantis/create_new_user.php");				
					}
					headerFunction("../users/listusers.php?msg=add&".session_name()."=".session_id());
					exit;
				}
			}
	}
	}
}

$bodyCommand = "onLoad=\"document.user_editForm.un.focus();\"";
include('../themes/'.THEME.'/header.php');

$blockPage = new block();
$blockPage->openBreadcrumbs();
$blockPage->itemBreadcrumbs($blockPage->buildLink("../administration/admin.php?",$strings["administration"],in));
$blockPage->itemBreadcrumbs($blockPage->buildLink("../users/listusers.php?",$strings["user_management"],in));

if ($id == "") {
	$blockPage->itemBreadcrumbs($strings["add_user"]);
}
if ($id != "") {
	$blockPage->itemBreadcrumbs($blockPage->buildLink("../users/viewuser.php?id=$id",$detailUser->mem_login[0],in));
	$blockPage->itemBreadcrumbs($strings["edit_user"]);
}
$blockPage->closeBreadcrumbs();

if ($msg != "") {
	include('../includes/messages.php');
	$blockPage->messagebox($msgLabel);
}

$block1 = new block();

if ($id == "") {
	$block1->form = "user_edit";
	$block1->openForm("../users/edituser.php?id=$id&action=add&".session_name()."=".session_id()."#".$block1->form."Anchor");
}
if ($id != "") {
	$block1->form = "user_edit";
	$block1->openForm("../users/edituser.php?id=$id&action=update&".session_name()."=".session_id()."#".$block1->form."Anchor");
}

if ($error != "") {            
	$block1->headingError($strings["errors"]);
	$block1->contentError($error);
}

if ($id == "") {
	$block1->heading($strings["add_user"]);
}
if ($id != "") {
	$block1->heading($strings["edit_user"]." : ".$detailUser->mem_login[0]);
}

$block1->openContent();

if ($id == "") {
	$block1->contentTitle($strings["enter_user_details"]);
}
if ($id != "") {
	$block1->contentTitle($strings["edit_user_details"]);
}

$block1->contentRow($strings["user_name"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"16\" type=\"text\" name=\"un\" value=\"$un\"><input type=\"hidden\" name=\"unOld\" value=\"$un\">");
$block1->contentRow($strings["full_name"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"64\" type=\"text\" name=\"fn\" value=\"$fn\">");
$block1->contentRow($strings["title"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"128\" type=\"text\" name=\"tit\" value=\"$tit\">");
$block1->contentRow($strings["email"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"128\" type=\"text\" name=\"em\" value=\"$em\">");
$block1->contentRow($strings["work_phone"],"<input size=\"14\" style=\"width: 150px;\" maxlength=\"32\" type=\"text\" name=\"wp\" value=\"$wp\">");
$block1->contentRow($strings["home_phone"],"<input size=\"14\" style=\"width: 150px;\" maxlength=\"32\" type=\"text\" name=\"hp\" value=\"$hp\">");
$block1->contentRow($strings["mobile_phone"],"<input size=\"14\" style=\"width: 150px;\" maxlength=\"32\" type=\"text\" name=\"mp\" value=\"$mp\">");
$block1->contentRow($strings["fax"],"<input size=\"14\" style=\"width: 150px;\" maxlength=\"32\" type=\"text\" name=\"fax\" value=\"$fax\">");
if ($lastvisitedpage ==  true) {
	$block1->contentRow($strings["last_page"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"255\" type=\"text\" name=\"last_page\" value=\"$last_page\">");
}
$block1->contentRow($strings["comments"],"<textarea style=\"width: 350px; height: 60px;\" name=\"c\" cols=\"45\" rows=\"5\">$c</textarea>");

if ($id == "") {
	$block1->contentTitle($strings["enter_password"]);
}
if ($id != "") {
	$block1->contentTitle($strings["change_password_user"]);
}

$block1->contentRow($strings["password"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"15\" type=\"password\" name=\"pw\" value=\"\">");
$block1->contentRow($strings["confirm_password"],"<input size=\"24\" style=\"width: 250px;\" maxlength=\"16\" type=\"password\" name=\"pwa\" value=\"\">");

// if the user isn't a client user then i give the opportunity to change the permission
if ($perm != '3') {
	$block1->contentTitle($strings["select_permissions"]);
	$block1->contentRow("<input type='radio' name='perm' value='1' $checked1 />","<b>".$strings["project_manager_permissions"]."</b>");
	$block1->contentRow("<input type='radio' name='perm' value='2' $checked2 />","<b>".$strings["user_permissions"]."</b>");
	$block1->contentRow("<input type='radio' name='perm' value='4' $checked4 />","<b>".$strings["disabled_permissions"]."</b>");
	$block1->contentRow("<input type='radio' name='perm' value='5' $checked5 />","<b>".$strings["project_manager_administrator_permissions"]."</b>");
} else {
	$block1->contentRow('',"<input type='hidden' name='perm' value='3' />");
}

$block1->contentRow("","<input type='submit' name='Save' value='".$strings["save"]."'>");

$block1->closeContent();
$block1->closeForm();

include('../themes/'.THEME.'/footer.php');
?>