<?php
ini_set("display_errors", TRUE);
require ("lib/genopar.lib.php");
require 'lib/config.php';

if(!doAuth(LVLADM)) {
	exit;
}

echo "
<script language=\"javascript1.2\">
function selfDelete(form, self){
	if (self == form.del_user.value){
		if (!confirm('Tem certeza que deseja deletar você mesmo?')){
			form.del_user.value = \"\";
			form.del_user.focus();
			return false;
		}
	}
}
function enableNewGroup(form){
	if (form.new_group.value == \"\")
		form.new_CreateGroup.disabled=false;
	else
		form.new_CreateGroup.disabled=true;
}

function valida(form, user){
	if (form.name == \"addUser\"){
		if (form.new_user.value == \"\"){
			alert(\"Informe o nome de Usuário desejado!\");
			form.new_user.focus();
			return false;
		}
	
		if (form.new_user.value.length < 3){
			alert(\"O nome de Usuário deve conter no mínimo 3 caracteres!\");
			form.new_user.value = \"\";
			form.new_user.focus();
			return false;
		}

		if (form.edit_prefname.value == \"\"){
			alert(\"Informe um nome de preferência!\");
			form.edit_prefname.focus();
			return false;
		}
	
		if (form.new_senha.value == \"\"){
			alert(\"Informe a senha do Usuário!\");
			form.new_senha.focus();
			return false;
		}
	
		if (form.new_senha.value.length < 5){
			alert(\"A senha deve conter pelo menos 5 caracteres!\");
			form.new_senha.value = \"\";
			form.new_senha2.value = \"\";
			form.new_senha.focus();
			return false;
		}


	
		if (form.new_senha2.value == \"\"){
			alert(\"Confirme a senha do Usuário!\");
			form.new_senha2.focus();
			return false;
		}
	
		if (form.new_senha.value != form.new_senha2.value){
			alert(\"Senhas nao conferem!\");
			form.new_senha.value = \"\";
			form.new_senha2.value = \"\";
			form.new_senha.focus();
			return false;
		}
	
		if (form.new_group.value == \"\"){
			if (form.new_CreateGroup.value == \"\"){
				alert(\"Informe o Grupo do Usuário!\");
				form.new_CreateGroup.focus();
				return false;
			}
		}
	
		if (form.new_level.value == \"\"){
			alert(\"Informe o nível do Usuário!\");
			form.new_level.focus();
			return false;
		}
	}else if(form.name == \"delUser\"){
		if (form.del_user.value == \"\"){
			alert(\"Informe o nome de Usuário a ser removido!\");
			form.del_user.focus();
			return false;
		}else{
			return selfDelete(form, user);
		}
	}else if(form.name == \"editAcc\"){
		if (form.edit_prefname.value == \"\"){
			alert(\"Informe um nome de preferência!\");
			form.edit_prefname.focus();
			return false;
		}

		if (form.edit_senha.value == \"\"){
			alert(\"Informe sua nova senha (ou a atual para nao haver mudanca)\");
			form.edit_senha.focus();
			return false;
		}
	
		if (form.edit_senha.value.length < 5){
			alert(\"A senha deve conter pelo menos 5 caracteres!\");
			form.edit_senha.value = \"\";
			form.edit_senha.focus();
			return false;
		}
	
		if (form.edit_senha2.value == \"\"){
			alert(\"Confirme sua senha!\");
			form.edit_senha2.focus();
			return false;
		}
	
		if (form.edit_senha.value != form.edit_senha2.value){
			alert(\"Senhas nao conferem!\");
			form.edit_senha.value = \"\";
			form.edit_senha2.value = \"\";
			form.edit_senha.focus();
			return false;
		}
	}
}
</script>
";

$levels = array('Administrador', 'Anotador', 'Pesquisador', 'Visitante');

$genopar = new Genopar();
verGetPost(array("action", "editarUser", "processa"));

if (isset($action)){
	switch ($action){
		case 'cadastrar':
			$genopar->abrePagina("Cadastrar Novo Usuário");
			break;
		case 'remover':
			$genopar->abrePagina("Remover Usuário");
			break;
		case 'editar':
			$genopar->abrePagina("Editar Própria Conta");
			break;
		default:
			$genopar->abrePagina("Administração de Contas");
	}
}else{
	$genopar->abrePagina("Administração de Contas");
}

$genopar->abreBanco();

if (isset($_SESSION['_authsession']['data']['UserAuth_username']))
	$user=$_SESSION['_authsession']['data']['UserAuth_username'];
elseif (isset($_COOKIE['USERNAME']))
	$user=$_COOKIE['USERNAME'];
else
	die("Não foi possível identificar Nome de Usuário");

$n= $genopar->queryBanco("SELECT * FROM users WHERE username='$user'");
if (!isset($prefname))
{
	if ($n==1)
	{
		$lin= $genopar->getArray();
		$prefname=$lin['prefname'];
		$level = $lin['level'];
	}
	else
		$prefname= $user;
}

echo "<div align=center>\n";
echo "<p>Bem vindo(a): <b>$prefname</b><br></p>\n";

echo "<p>\n";
echo "<table cellpadding=5 border=1 rules=all>\n";
echo "<tr>\n";
echo "\t<td align=center><a href=\"".$_SERVER['PHP_SELF']."?action=editar\">Editar Conta</a></td>\n";
if ($level == LVLADM){
	echo "\t<td align=center><a href=\"".$_SERVER['PHP_SELF']."?action=viewAll\">Visualizar Usuários</a></td>\n";
	echo "\t<td align=center><a href=\"".$_SERVER['PHP_SELF']."?action=cadastrar\">Cadastrar Novo Usuário</a></td>\n";
	echo "\t<td align=center><a href=\"".$_SERVER['PHP_SELF']."?action=remover\">Remover Usuário</a></td>\n";
}
echo "</tr>\n";
echo "</table>\n";
echo "</p>\n";

if (isset($action)){
	if ($action == "viewAll" && $level == LVLADM){
		echo "<p>\n";
		echo "<table cellpadding=5 border=1 rules=all>\n";

		echo '<tr>';
		echo '<td>';
		echo '<b>Editar';
		echo '</td>';
		echo '<td>';
		echo '<b>Usuário';
		echo '</td>';
		echo '<td>';
		echo '<b>Nome';
		echo '</td>';
		echo '<td>';
		echo '<b>Nível';
		echo '</td>';
		echo '<td>';
		echo '<b>Grupo';
		echo '</td>';
		echo '</tr>';

		$n = $genopar->queryBanco("SELECT * FROM users");
		while($lin = $genopar->getArray()){
			echo '<tr>';
	
			echo '<td>';
			echo "<a href='".$_SERVER['PHP_SELF']."?editarUser=".$lin['username']."'>Editar</a>";
			echo '</td>';
	
			echo '<td>';
			echo $lin['username'];
			echo '</td>';
	
			echo '<td>';
			echo $lin['prefname'];
			echo '</td>';
	
			echo '<td>';
			echo $lin['level'];
			echo '</td>';
	
			echo '<td>';
			echo $lin['group'];
			echo '</td>';
	
			echo '</tr>';
		}
		echo "</table>\n";
		echo "</p>\n";
	}

	/**
	** CADASTRO DE USUARIO
	**
	** Formulario para obter dados do novo usuario
	** JS valida se foi digitado valores em todos os campos
	**/
	elseif ($action == "cadastrar" && !isset($_POST['Cadastrar']) && $level == 1){
		$genopar->abreForm("return valida(this);", "addUser");
		echo "<table border=1 rules=all>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Usuário:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("new_user");
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Senha:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("new_senha", "password");
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Confirme a senha:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("new_senha2", "password");
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Nome:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("new_prefname");
		echo "</td>\n";
		echo "</tr>\n";

		mysql_select_db($DB_NAME) or $genopar->error();
		$r = $genopar->queryBanco("SELECT `idlab` FROM labs");
		$groups = array('Admin');
		if ($r > 0){
			while($lin = $genopar->getArray()){
				array_push($groups, $lin["idlab"]);
			}
		}

		mysql_select_db('www') or $genopar->error();
		echo "<tr>\n";
		echo "\t<td align=right>Grupo:</td>\n";
		echo "\t<td align=left>";
		$genopar->select("new_group", $groups, "", "enableNewGroup(document.addUser);",TRUE);
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Novo Grupo:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("new_CreateGroup", "text");
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Nível:</td>\n";
		echo "\t<td align=left>";
		$genopar->select("new_level", $levels, "", "", TRUE);
// 		$genopar->input("new_level", "text", "", 3, 3);
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td></td>\n";
		echo "\t<td align=right>";
		$genopar->submit("Enviar", "Cadastrar");
		echo "</td>\n";
		echo "</tr>\n";

		echo "</table>\n";
		$genopar->fechaForm();
	/**
	** Insercao no banco
	** Valida se nao ha outro usuario com o mesmo nome
	**/
	}elseif(isset($_POST['Cadastrar']) && $level == 1){
		verGetPost(array("new_user", "new_senha", "new_senha2", "new_prefname", "new_group", "new_CreateGroup", "new_level"));
		$users = $genopar->queryBanco("SELECT * FROM users WHERE username='$new_user'");

		$new_level =  array_search($new_level, $levels);
		$new_level++;

		if ($users > 0){
			$genopar->error("Usuário já existente.");
		}

		$password = md5($new_senha);

		if ($new_group == ""){
			$new_group = $new_CreateGroup;
		}

		$genopar->queryBanco("INSERT INTO users SET username='$new_user', password='$password', prefname='$new_prefname', level='$new_level', `group`='$new_group'");

		echo "<font size=+1><b>Usuário <i>$new_user</i> cadastrado.</b></font>";

	/**
	** REMOCAO DE USUARIO
	**
	** Formulario obtem nome do usuario a ser removido
	** JS valida se foi digitado algum valor
	** JS pede confirmacao do usuario caso queira remover si proprio
	**/
	}elseif($action == "remover" && !isset($_POST['Remover']) && $level == 1){
		$genopar->abreForm("return valida(this, '$user');", "delUser");
		echo "<table border=1 rules=all>\n";

		echo "<tr>\n";
		echo "\t<td align=right>Usuário:</td>\n";
		echo "\t<td align=right>";
		$genopar->input("del_user");
		echo "</td>\n";
		echo "</tr>\n";

		echo "<tr>\n";
		echo "\t<td></td>\n";
		echo "\t<td align=right>";
		$genopar->submit("Enviar", "Remover");
		echo "</td>\n";
		echo "</tr>\n";

		echo "</table>\n";
		$genopar->fechaForm();

	/**
	** Remocao no banco
	** Valida se o usuario existe
	**/
	}elseif(isset($_POST['Remover']) && $level == 1){
		verGetPost(array("del_user"));
		$users = $genopar->queryBanco("SELECT * FROM users WHERE username='$del_user'");

		if ($users != 1){
			$genopar->error("Usuário não existente.");
		}

		$genopar->queryBanco("DELETE FROM users WHERE username = '$del_user'");
// 		echo "DELETE FROM users WHERE username = '$del_user'";
		echo "<font size=+1><b>Usuário <i>$del_user</i> removido.</b></font>";


	/**
	** EDICAO DE CONTA
	**
	** Formulario obtem novos dados cadastrais
	** JS valida se foi digitado valores em todos os campos (inclusive nas senhas)
	**/
	}elseif($action == "editar" && !isset($_POST['processa'])){
		verGetPost(array("processa", "edit_senha", "edit_prefname", "edit_senha2"));
		$genopar->abreForm("return valida(this);", "editAcc");
		
		echo "<table border=1 rules=all>\n";
		echo "<TR>
				<td align='right'>Usuario:&nbsp;</td>
				<td><b>$user</b></td>
			</TR>";
		echo "<TR>
				<td align='right'>Nome de Preferência:&nbsp;</td>
				<td><INPUT TYPE='text' NAME='edit_prefname' VALUE='$prefname'</td>
			</TR>";
		echo "<TR>
				<td align='right'>Senha:&nbsp;</td>
				<td><INPUT TYPE='password' NAME='edit_senha' VALUE=''</td>
			</TR>";
		echo "<TR>
				<td align='right'>Confirmação da Senha:&nbsp;</td>
				<td><INPUT TYPE='password' NAME='edit_senha2' VALUE=''</td>
			</TR>";
		echo '<TR><TD></TD><TD ALIGN="right"><INPUT TYPE="submit" NAME="processa" VALUE="Atualizar"></TD></TR>';
		echo '</TABLE>';

	/**
	** Atualiza dados no banco
	**/
	}elseif ($processa == 'Atualizar'){
		verGetPost(array("edit_senha", "edit_prefname"));
		$passwd= md5($edit_senha);

		if ($n == 1)
			$genopar->queryBanco("UPDATE users SET password='$passwd', prefname='$edit_prefname' WHERE username='$user'");
// 			echo "UPDATE users SET password='$passwd', prefname='$edit_prefname' WHERE username='$user'";
		else
			$genopar->queryBanco("INSERT INTO users SET username='$user', password='$edit_passwd', prefname='$edit_prefname'");
// 			echo ("INSERT INTO users SET username='$user', password='$edit_passwd', prefname='$edit_prefname'");
			
// 		$LOG->log($user, 'Atualização de Senha', "($n)$senha");	

// 		$cmd= "cd /tmp && /usr/local/apache/bin/htpasswd -b /genome/www/mng/secure/.htpasswd $user $senha";
// 		system($cmd, $R);
		echo "<br>Informações atualizadas.";
		if ($n!=1)
			echo "<br><br>Atenção: Algumas páginas somente estarão acessíveis após validação da senha por um administrador.";
// 		if ($R!=0)
// 			echo "<br><br>Atenção: Ocorreram problemas ao atualizar a senha WEB, por favor, contate o Lab. BioInfo!";
			
	}
}elseif ($editarUser != '' && $level == 1){
	verGetPost(array("processa", "edit_senha", "edit_prefname", "edit_senha2"));

	if ($processa != 'Atualizar'){
		$n = $genopar->queryBanco("SELECT * FROM users WHERE username='$editarUser'");
	
		$lin = $genopar->getArray();
		$genopar->abreForm("return valida(this);", "editAcc");
		echo "<table border=1 rules=all>\n";
		echo "<TR>
				<td align='right'>Usuario:&nbsp;</td>
				<td><b>$editarUser</b></td>
			</TR>";
		echo "<TR>
				<td align='right'>Nome de Preferência:&nbsp;</td>
				<td><INPUT TYPE='text' NAME='edit_prefname' VALUE='".$lin['prefname']."'</td>
			</TR>";
		echo "<TR>
				<td align='right'>Senha:&nbsp;</td>
				<td><INPUT TYPE='password' NAME='edit_senha' VALUE=''</td>
			</TR>";
		echo "<TR>
				<td align='right'>Confirmação da Senha:&nbsp;</td>
				<td><INPUT TYPE='password' NAME='edit_senha2' VALUE=''</td>
			</TR>";
		echo '<TR><TD></TD><TD ALIGN="right"><INPUT TYPE="submit" NAME="processa" VALUE="Atualizar"></TD></TR>';
		echo '</TABLE>';
	}else{
		$passwd= md5($edit_senha);

		$genopar->queryBanco("UPDATE users SET password='$passwd', prefname='$edit_prefname' WHERE username='$editarUser'");	

		echo "<br>Informações atualizadas.";
	}
}

echo "</div>\n";

$genopar->fechaPagina();

?>
