224 lines
6.6 KiB
PHP
224 lines
6.6 KiB
PHP
<?php
|
|
|
|
# vers. 20120625-01
|
|
|
|
include_once("./include/cfg-petar.php");
|
|
include_once("./include/cfg-mail.php");
|
|
include_once("./include/layout.php");
|
|
include_once("./include/users.php");
|
|
include_once("./include/db.php");
|
|
|
|
?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-header.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-top.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
|
|
<tr bgcolor=navy align=center>
|
|
<td colspan=5><font color=yellow><b>Email</b></font></td>
|
|
|
|
<?php
|
|
|
|
echo "<tr align=left valign=top>".
|
|
"<td colspan=6>";
|
|
|
|
if ($restricted_petar == true){
|
|
|
|
|
|
echo "<tr><td colspan=6><font color=red><b>impossibile creare utenti nel sistema operativo.</b></font></td></tr>".
|
|
"<tr><td colspan=6> - per abilitare la scrittura settare la seguente variabile ".
|
|
"<b>restricted_petar</b> = <b>false</b> nel file : <b>include/cfg-mail.php</b></tr>";
|
|
|
|
require 'include/inc-footer.php';
|
|
exit;
|
|
}
|
|
|
|
|
|
$_REQUEST["step"]=$_REQUEST["step"] ?? null;
|
|
if (!$_REQUEST["step"]){
|
|
|
|
$sql="SELECT domain FROM MAILUSER group by domain order by domain";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
echo "<b>email in nuovo dominio</b>".
|
|
"<FORM NAME=ndomain ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
|
"[ <a href='javascript:document.ndomain.submit();'>Inizializza il dominio</a> ]: ".
|
|
"<INPUT TYPE=TEXT NAME=domain SIZE=30 MAXLENGTH=30>".
|
|
" ".
|
|
"<INPUT TYPE=HIDDEN name=step value=1></FORM>";
|
|
|
|
if ( count($rows) > 0 ) {
|
|
|
|
echo "<b>email in dominio esistente</b>".
|
|
"<FORM NAME=edomain ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
|
"[ <a href='javascript:document.edomain.submit();'>Crea nuova email nel seguente dominio</a> ]:".
|
|
"<select name=domain>";
|
|
|
|
foreach($rows as $row){
|
|
echo "<option value=".$row["domain"].">".$row["domain"]."</option>";
|
|
}
|
|
|
|
echo "</select>".
|
|
" ".
|
|
"<INPUT TYPE=HIDDEN name=step value=1></FORM>".
|
|
"<p>";
|
|
}
|
|
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "1"){
|
|
|
|
if ($_REQUEST["domain"]){
|
|
|
|
$_REQUEST["domain"] = preg_replace("/[^A-Za-z0-9.-]/", '', $_REQUEST["domain"]);
|
|
|
|
# Make some defaults
|
|
# Pwd
|
|
$stringa = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikolp";
|
|
$pwd=substr(str_shuffle($stringa),0,6);
|
|
|
|
echo "Ultime (max 30) email del dominio: <strong>".$_REQUEST["domain"]."</strong>".
|
|
"<br><FORM NAME=creamail ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>";
|
|
|
|
echo "<tr bgcolor=navy>".
|
|
"<td><font color=yellow>nr".
|
|
"<td><font color=yellow>login".
|
|
"<td><font color=yellow>email".
|
|
"<td><font color=yellow>domain";
|
|
|
|
# Contiamo quante email per prenderne poi le ultime 30.
|
|
|
|
$sql="SELECT login FROM MAILUSER where domain = '".$_REQUEST["domain"]."'";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
$LIMIT = "LIMIT ".(count($rows) - 30).",30";
|
|
|
|
# Troviamo le ultime 30 email del dominio
|
|
|
|
$sql = "SELECT login,email,domain FROM MAILUSER where domain = '".$_REQUEST["domain"]."' ".$LIMIT;
|
|
$index = 0;
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
foreach($rows as $row){
|
|
$index += 1;
|
|
echo "<tr>".
|
|
"<td width=5%>".$index.
|
|
"<td width=30%>".$row["login"].
|
|
"<td width=46%>".$row["email"].
|
|
"<td width=24%>".$row["domain"];
|
|
}
|
|
|
|
|
|
echo "<tr bgcolor=yellow>".
|
|
"<td colspan=5>".
|
|
"Dati nuovo utente:".
|
|
"<p>".
|
|
"login: <INPUT TYPE=TEXT NAME=login SIZE=15 MAXLENGTH=15>".
|
|
" ".
|
|
"pwd : <INPUT TYPE=TEXT NAME=pwd VALUE=$pwd SIZE=6 MAXLENGTH=15>".
|
|
" ".
|
|
"email: <INPUT TYPE=TEXT NAME=email SIZE=20 MAXLENGTH=30> @ ".$_REQUEST["domain"].
|
|
"<p>".
|
|
"shell: <select name=shell>".
|
|
"<option value='/sbin/nologin'>no</option>".
|
|
"<option value='/bin/sh'>si</option>".
|
|
"</select>".
|
|
" ".
|
|
" [ <a href='javascript:document.creamail.submit();'>crea questa email</a> ]".
|
|
" ".
|
|
" [ <a href='mail-adduser.php'>annulla</a> ]".
|
|
"<INPUT TYPE=HIDDEN name=domain value=".$_REQUEST["domain"].">".
|
|
"<INPUT TYPE=HIDDEN name=step value=2></FORM>".
|
|
"</tr></table>";
|
|
|
|
|
|
} else {
|
|
|
|
echo "<p> <p><font color=red><b>Errore</b></font><p>".
|
|
"Campo nuovo dominio vuoto".
|
|
"<p><a href='javascript:history.back();'>Correzione</a>";
|
|
}
|
|
}
|
|
|
|
if ($_REQUEST["step"] == "2"){
|
|
|
|
$errore=false;
|
|
|
|
$email=strtolower($_REQUEST["email"]) ?? '';
|
|
$domain=strtolower($_REQUEST["domain"]) ?? '';
|
|
$login=strtolower($_REQUEST["login"]) ?? '';
|
|
$shell=$_REQUEST["shell"] ?? '';
|
|
$pwd=$_REQUEST["pwd"] ?? '';
|
|
$fullemail = strtolower($email."@".$domain);
|
|
|
|
$sql = "SELECT email FROM MAILUSER where email = '".$fullemail."'";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
if ( count($rows) > 0 ) {
|
|
$errore .= "email $fullemail presente<p>";
|
|
}
|
|
|
|
if (strlen($email) < "3"){
|
|
$errore .= "email <b>".$email."</b> troppo corta<p>";
|
|
}
|
|
|
|
if (strlen($login) < "3"){
|
|
$errore .= "login <b>".$login."</b> troppo corto<p>";
|
|
}
|
|
|
|
if (strlen($pwd) < "6"){
|
|
$errore .= "pwd <b>".$pwd."</b> troppo corta<p>";
|
|
}
|
|
|
|
$sql = "SELECT login FROM MAILUSER where login = '".$login."'";
|
|
$result=$dbh->query($sql);
|
|
$rows=$result->fetchAll();
|
|
|
|
if ( count($rows) > 0 ) {
|
|
$errore .= "login ".$login." presente. Riesegui la procedura per una nuova generazione<p>";
|
|
}
|
|
|
|
if ($errore){
|
|
|
|
echo "<font color=red><b>Errore</b></font><p>".
|
|
$errore.
|
|
"<p><a href='javascript:history.back();'>Correzione</a>";
|
|
|
|
} else {
|
|
|
|
$result=false;
|
|
$sql = "insert into MAILUSER (login,pwd,gid,email,home,shell,domain) VALUES ('".$login."','".crypt($pwd, '$6$')."','2000','".$fullemail."','".$def_mail_user_home.$login."','".$shell."','".$_REQUEST["domain"]."')";
|
|
$count = $dbh->exec($sql);
|
|
|
|
passthru("/usr/local/bin/sudo ".$mng_user." ADD ".$login." ".crypt($pwd, '$6$')." ".$shell." ".$def_mail_user_home." ".$fullemail, $retval);
|
|
if ($retval != "0"){
|
|
echo "Script to create USER - Execution exited with status code:".$retval;
|
|
exit;
|
|
} else {
|
|
echo "<p><FONT COLOR=green>USER DB ... OK</font>";
|
|
|
|
echo "<p><FONT COLOR=green>MAIL DB ... OK</font><br>".
|
|
"[ <a href=mail-restart.sh>Sincronizza</a> ] o aspetta 2s per la procedura automatica";
|
|
|
|
echo '<meta http-equiv="refresh" content="2;url=mail-restart.php" />';
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|
|
|
|
<?php require 'include/inc-footer.php';?>
|
|
|
|
<!-- ------------------------------------------------------------------------ -->
|