Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 3037 → Rev 3038

/scripts/alcasar-mail-install.sh
34,6 → 34,9
mailMdp=`grep ^MAIL_PASSWORD= $CONF_FILE|cut -d"=" -f2`
adminMail=`grep ^MAIL_ADMIN= $CONF_FILE|cut -d"=" -f2`
whiteDomain=`grep ^MAIL_WHTEDOMAIN= $CONF_FILE|cut -d"=" -f2`
domainName=`grep ^DOMAIN= $CONF_FILE|cut -d"=" -f2`
hostName=`grep ^HOSTNAME= $CONF_FILE|cut -d"=" -f2`
 
fi
else # apply args
if [ "$1" = "-h" ] || [ "$1" = "--h" ]; then
99,24 → 102,26
$SED "s/^\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT.*/#\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT -s \$SMTP_IP -m conntrack --ctstate ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^relayhost =.*/relayhost =/" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_security_level =.*/smtp_tls_security_level = may/g" $POSTFIX_CONF_FILE
$SED "/^smtp_tls_wrappermode = yes/d" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_wrappermode =.*/smtp_tls_wrappermode = no/g" $POSTFIX_CONF_FILE
$SED "s/^myhostname =.*/myhostname = $hostName.$domainName/g" $POSTFIX_CONF_FILE
[ -e ${SASLPATH}/sasl_passwd ] && rm -f ${SASLPATH}/sasl_passwd
elif [[ $TYPE_MAIL -eq 1 ]]; then # Enable mail service (act as smtp server)
$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=1/" $CONF_FILE
$SED "s/^MAIL_SMTP_IP=.*/MAIL_SMTP_IP=/" $CONF_FILE
$SED "s/^MAIL_SMTP_PORT=.*/MAIL_SMTP_PORT=/" $CONF_FILE
$SED "s/^MAIL_SMTP_PORT=.*/MAIL_SMTP_PORT=$smtpPort/" $CONF_FILE
$SED "s/^MAIL_ADDR=.*/MAIL_ADDR=/" $CONF_FILE
$SED "s/^MAIL_PASSWORD=.*/MAIL_PASSWORD=/" $CONF_FILE
$SED "s/^MAIL_WHITEDOMAIN=.*/MAIL_WHITEDOMAIN=$whiteDomain/" $CONF_FILE
$SED "s/^MAIL_ADMIN=.*/MAIL_ADMIN=$adminMail/" $CONF_FILE
$SED "/^SMTP_IP=/ s/^/#/" $LOCAL_IPTABLE_FILE
$SED "/^SMTP_PORT=/ s/^/#/" $LOCAL_IPTABLE_FILE
$SED "s/^\$IPTABLES -A OUTPUT -p tcp --dport \$SMTP_PORT.*/#\$IPTABLES -A OUTPUT -p tcp --dport \$SMTP_PORT -d \$SMTP_IP -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT.*/#\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT -s \$SMTP_IP -m conntrack --ctstate ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^#SMTP_PORT=.*/SMTP_PORT=$smtpPort/" $LOCAL_IPTABLE_FILE
$SED "s/^#\$IPTABLES -A OUTPUT -p tcp --dport \$SMTP_PORT.*/\$IPTABLES -A OUTPUT -p tcp --dport \$SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^#\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT.*/\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^relayhost =.*/relayhost =/" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_security_level =.*/smtp_tls_security_level = may/g" $POSTFIX_CONF_FILE
$SED "/^smtp_tls_wrappermode = yes/d" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_wrappermode =.*/smtp_tls_wrappermode = no/g" $POSTFIX_CONF_FILE
$SED "s/^myhostname =.*/myhostname = $hostName.$domainName/g" $POSTFIX_CONF_FILE
[ -e ${SASLPATH}/sasl_passwd ] && rm -f ${SASLPATH}/sasl_passwd
elif [[ $TYPE_MAIL -eq 2 ]]; then # Enable mail service (relaying to an extern mail server)
$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
133,7 → 138,8
$SED "s/^#\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT.*/\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT -s \$SMTP_IP -m conntrack --ctstate ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^relayhost =.*/relayhost = $smtpIP:$smtpPort/g" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_security_level =.*/smtp_tls_security_level = may/g" $POSTFIX_CONF_FILE
$SED "/^smtp_tls_wrappermode = yes/d" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_wrappermode =.*/smtp_tls_wrappermode = no/g" $POSTFIX_CONF_FILE
$SED "s/^myhostname =.*/myhostname = $hostName.$domainName/g" $POSTFIX_CONF_FILE
[ -e ${SASLPATH}/sasl_passwd ] && rm -f ${SASLPATH}/sasl_passwd
elif [[ $TYPE_MAIL -eq 3 ]]; then # Enable mail service (using an email address)
$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
150,7 → 156,12
$SED "s/^#\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT.*/\$IPTABLES -A INPUT -p tcp --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
$SED "s/^relayhost =.*/relayhost = $smtpIP:$smtpPort/g" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_security_level =.*/smtp_tls_security_level = encrypt/g" $POSTFIX_CONF_FILE
$SED "/^smtp_tls_wrappermode = yes/d" $POSTFIX_CONF_FILE
$SED "s/^smtp_tls_wrappermode =.*/smtp_tls_wrappermode = yes/g" $POSTFIX_CONF_FILE
if [ "$domainName" = "localdomain" ]; then # use a real domain name to avoid extern smtp server reject
$SED "s/^myhostname =.*/myhostname = alcasar.net/g" $POSTFIX_CONF_FILE
else
$SED "s/^myhostname =.*/myhostname = $hostName.$domainName/g" $POSTFIX_CONF_FILE
fi
[ -d ${SASLPATH} ] || mkdir ${SASLPATH}
echo "[${smtpIP}]:${smtpPort} ${mailAddr}:${mailMdp}" > ${SASLPATH}/sasl_passwd
postmap ${SASLPATH}/sasl_passwd
/web/acc/manager/htdocs/user_by_email.php
126,7 → 126,7
if ($admin_enable == "1") { $mail_admin = $_POST['mail_admin']; }
switch ($mail_type) {
case '1': // Act as a SMTP server
$mail_smtp_port = 25;
$mail_smtp_port = 587;
if ($admin_enable == "1"){
exec("sudo /usr/local/bin/alcasar-mail-install.sh -1 -a $mail_admin -w $mail_whitelist");
}
303,8 → 303,8
</dt>
<dd>
<select id="mail_type" name="mail_type" onchange="onMailStatusChange();">
<option value="1"<?= ($mail_type == '1') ? ' selected="selected"' : '' ?>><?= $l_use_internal_server ?></option>
<option value="2"<?= ($mail_type == '2') ? ' selected="selected"' : '' ?>><?= $l_use_external_server ?></option>
<option value="1"<?= ($mail_type == '1') ? ' selected="selected"' : '' ?> disabled><?= $l_use_internal_server ?></option>
<option value="2"<?= ($mail_type == '2') ? ' selected="selected"' : '' ?> disabled><?= $l_use_external_server ?></option>
<option value="3"<?= ($mail_type == '3') ? ' selected="selected"' : '' ?>><?= $l_use_email_address ?></option>
</select>
</dd>
/web/email_registration_back.php
52,6 → 52,7
$adminMail = $conf['MAIL_ADMIN'];
$typeMail = $conf['MAIL_TYPE'];
$fromMail = $conf['MAIL_ADDR'];
$organism = $conf['ORGANISM'];
 
/****************************************
* Choice of language *
62,17 → 63,16
$Language = strtolower(substr(chop($Langue[0]), 0, 2));
}
if ($Language === 'fr') {
$l_invalid_Email = "L'adresse email est invalide";
$l_invalid_Email = "L'adresse e-mail est invalide";
$l_domain = "Le domaine";
$l_not_authorized = "n'est pas autorisé";
$l_Email_already_used = "Cette adresse email est déjà utilisée.";
$l_Email_already_used = "Cette adresse e-mail est déjà utilisée.";
$l_subject = "Activation de votre compte ALCASAR";
$l_hello = "Bonjour";
$l_automatic_mail = "Ceci est un e-mail automatique provenant d'un portail ALCASAR";
$l_login = "Vos indentifiants de connexion :";
$l_email = "Adresse e-mail";
$l_automatic_mail = "Ceci est un e-mail automatique provenant du portail ALCASAR : $organism";
$l_login = "Voici vos indentifiants de connexion :";
$l_password = "Mot de passe";
$l_go_home = "Rendez-vous sur la page d'accueil";
$l_mail_success = "Un mot de passe vient d'être envoyé à votre adresse e-mail.";
$l_mail_error = "Erreur lors de l'envoi du mail. Renouvelez votre inscription ou contactez votre administrateur.";
} else {
$l_invalid_Email = "Invalid Email address";
81,17 → 81,13
$l_Email_already_used = "This Email address is already used.";
$l_subject = "Activation of your ALCASAR account";
$l_hello = "Hello";
$l_automatic_mail = "This is an automatic e-mail from an ALCASAR portal";
$l_login = "Your login credentials :";
$l_email = "e-mail address";
$l_automatic_mail = "This is an automatic e-mail from ALCASAR portal : $organism";
$l_login = "Here are your login credentials :";
$l_password = "Password";
$l_go_home = "Go to the home page";
$l_mail_success = "A password has been sent to your e-mail address";
$l_mail_error = "Error while sending the email. Renew your registration or contact your administrator.";
}
 
if (is_file("acc/manager/lib/langues.php"))
include("acc/manager/lib/langues.php");
 
if(!isset($create)) $create=0;
if(!isset($show)) $show=0;
if(!isset($login)) $login = '';
260,51 → 256,6
else
echo "<b>Impossible d'ajouter l'utilisateur dans le groupe $Fgroup: " . da_sql_error($link,$config) . "</b><br />\n";
}
/*
if (!$da_abort){
if (isset($Fgroup) && $Fgroup != '')
require('acc/manager/lib/defaults.php');
foreach($show_attrs as $key => $attr){
if ($attrmap["$key"] == 'none')
continue;
if ($key == "Filter-Id" && $$attrmap["$key"] == "None")
continue;
if ($attrmap["$key"] == ''){
$attrmap["$key"] = $key;
$attr_type["$key"] = 'replyItem';
$rev_attrmap["$key"] = $key;
}
if (isset($attr_type["$key"]) && $attr_type["$key"] == 'checkItem'){
$table = "$config[sql_check_table]";
$type = 1;
}
else if (isset($attr_type["$key"]) && $attr_type["$key"] == 'replyItem'){
$table = "$config[sql_reply_table]";
$type = 2;
}
$val = (isset($_POST[$attrmap["$key"]])) ? $_POST[$attrmap["$key"]] : '';
$val = da_sql_escape_string($link, $val);
$op_name = $attrmap["$key"] . '_op';
$op_val = (isset($$op_name)) ? $$op_name : '';
if ($op_val != ''){
$op_val = da_sql_escape_string($link, $op_val);
if (check_operator($op_val,$type) == -1){
echo "<b>Invalid operator ($op_val) for attribute $key</b><br />\n";
continue;
}
$op_val2 = ",'$op_val'";
}
$chkdef = (isset($default_vals["$key"])) ? check_defaults($val,$op_val,$default_vals["$key"]) : 0;
if ($val == '' || $chkdef)
continue;
$sqlquery = "INSERT INTO $table (attribute,value,username $text)
VALUES ('$attrmap[$key]','$val','$login' $op_val2);";
$res = da_sql_query($link,$config,$sqlquery);
if (!$res || !da_sql_affected_rows($link,$res,$config))
echo "<b>Query failed for attribute $key: " . da_sql_error($link,$config) . "</b><br />\n";
}
}
*/
// Creation of the email with the new user login & passwd
$ip = $_SERVER['REMOTE_ADDR'];
$time = date_create('now')->format('d-m-Y H:i:s');
318,55 → 269,45
}
$subject = $l_subject;
$message = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"UTF-8\" />
</head>
<body>
$l_hello,<br/><br/>
<p>$l_automatic_mail ($hostname.$domain)<br/>
<h4>$l_login</h4>
<pre>
$l_email : $Fmail
Login : $login
$l_password : $password
</pre>
<p>$l_go_home : <a href=\"https://$hostname.$domain\"></a></p>
</body>
</html>";
<html>
<head>
<meta charset=\"UTF-8\" />
</head>
<body>
$l_hello,<br/>
<p>$l_automatic_mail<br/>
<h3>$l_login</h3>
<pre>
Login : $login
$l_password : $password
</pre>
</body>
</html>";
$header = "From: $from\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=utf-8\n";
if(mail($to, $subject, $message, $header)){
echo "<center>success : <b>Vous y êtes presque ! $l_user '$login' $l_created</b></center><br />";
echo "<center>success : <b>Un email contenant vos informations de connexion vient d'être envoyé.</b></center><br />";
echo "Info : to = $to ; header = $header<br />";
// Creation of the email for the administrator (if enabled)
if (!empty($adminMail)){
echo "<center>success : <b>$l_mail_success</b><br>";
if (!empty($adminMail)){ // Creation of the email for the administrator (if enabled)
$to = $adminMail;
$from = "administrator";
$subject = "New registration on ALCASAR";
$message = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"UTF-8\" />
</head>
<body>
Hello,<br/><br/>
<p>This is an automatic e-mail from an ALCASAR portal.<br/>
<h3>A new registration on <strong>$hostname.$domain</strong> has been made :</h3>
<pre>
@IP : $ip
Hour : $time
Login : $login
Email : $Fmail
</pre>
<p><a href=\"https://$hostname\">$domain</a></p>
</body>
</html>";
$header = "From: $from\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=utf-8\n";
<html>
<head>
<meta charset=\"UTF-8\" />
</head>
<body>
Hello,<br/>
<p>$l_automatic_mail<br/>
<h3>A new registration on ALCASAR '$organism' has been made :</h3>
<pre>
@IP : $ip
Hour : $time
Login : $login
Email : $Fmail
</pre>
</body>
</html>";
mail($to, $subject, $message, $header);
}
} else {
/web/email_registration_front.php
5,7 → 5,7
* ALCASAR EMAIL INSCRIPTION *
* *
* By K@M3L & T3RRY @ La Plateforme_ *
* *
* By Rexy *
* Partie front de la page d'inscription des utilisateurs *
* elle envoi les infos à traiter à la page de traitement *
* via AJAX (email_registration_back) *
18,21 → 18,64
$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$Language = strtolower(substr(chop($Langue[0]), 0, 2));
}
if ($Language === 'fr') {
$l_home = " Accueil";
$l_title = "Inscription par Email";
$l_login = "Connexion";
$l_Email = "Adresse électronique: *";
$l_mandatory = "* Remplir tous les champs obligatoires";
} else {
$l_home = " Home";
$l_title = "Email inscription";
$l_login = "Login";
$l_Email = "Email address: *";
$l_mandatory = "* Fill in all mandatory fields";
if ($Language === 'es') { // Spanish
$l_title = "Inscripción por e-mail";
$l_Email = "dirección de e-mail : *";
$l_mandatory = "* Campos requeridos";
$l_inscription = "Inscripción";
$l_mail_success = "Se ha enviado una contraseña a su dirección de correo electrónico.\\nVRevise su correo no deseado o spam, si no ve este correo en su bandeja de entrada.";
$l_mail_error = "Se ha producido un error. Por favor, renueve su registro o póngase en contacto con su administrador.";
} else if ($Language === 'pt') { // Portuguese
$l_title = "inscrição de e-mail";
$l_Email = "endereço de e-mail : *";
$l_mandatory = "* Campos obrigatórios";
$l_inscription = "Inscrição";
$l_mail_success = "Foi enviada uma senha para o seu endereço electrónico.\\nVerifique o seu spam ou lixo electrónico, se não vir este e-mail na sua caixa de entrada.";
$l_mail_error = "Ocorreu um erro. Por favor, renove o seu registo ou contacte o seu administrador.";
} else if ($Language === 'de') { // German
$l_title = "E-Mail-Anschrift";
$l_Email = "e-mail adress : *";
$l_mandatory = "* Erforderliche Felder";
$l_inscription = "Aufschrift";
$l_mail_success = "Ein Passwort wurde an Ihre E-Mail-Adresse gesendet.\\nPrüfen Sie Ihre Spam- oder Junk-Mail, wenn Sie diese E-Mail nicht in Ihrem Posteingang finden.";
$l_mail_error = "Es ist ein Fehler aufgetreten. Bitte erneuern Sie Ihre Registrierung oder kontaktieren Sie Ihren Administrator.";
} else if ($Language === 'nl') { // Dutch
$l_title = "e-mail inscriptie";
$l_Email = "e-mailadres : *";
$l_mandatory = "* Verplichte velden";
$l_inscription = "Opschrift";
$l_mail_success = "Er is een wachtwoord naar uw e-mail adres gestuurd.\\nControleer uw spam of junk mail, als u deze e-mail niet in uw inbox ziet.";
$l_mail_error = "Er is een fout opgetreden. Vernieuw uw registratie of neem contact op met uw beheerder.";
} else if ($Language === 'zh') { // Chinese
$l_title = "电子邮件题词";
$l_Email = "电子邮件地址 : *";
$l_mandatory = "* 必须填写";
$l_inscription = "铭文";
$l_mail_success = "一个密码已经发送到你的邮箱。\\n如果你在收件箱中没有看到这封邮件,请检查你的垃圾邮件或垃圾邮件。";
$l_mail_error = "发生了一个错误。请更新您的注册或联系您的管理员。";
} else if ($Language === 'ar') { // Arabic
$l_title = "تسجيل البريد الإلكتروني";
$l_Email = "عنوان البريد الالكترونى : *";
$l_mandatory = "* الحقول المطلوبة";
$l_inscription = "التسجيل";
$l_mail_success = "تم إرسال كلمة المرور إلى عنوان البريد الإلكتروني الخاص بك.\\nتحقق من البريد العشوائي أو البريد غير الهام ، إذا كنت لا ترى هذا البريد الإلكتروني في صندوق الوارد الخاص بك.";
$l_mail_error = "الرجاء تجديد التسجيل الخاص بك أو الاتصال بالمسؤول.";
} else if ($Language === 'fr') {
$l_title = "Inscription par e-mail";
$l_Email = "Adresse e-mail : *";
$l_mandatory = "* Champs obligatoires";
$l_inscription = "Inscription";
$l_mail_success = "Un mot de passe vient d'être envoyé à votre adresse e-mail.\\nVérifier vos spams ou courriers indésirables, si vous ne voyez pas cet e-mail dans votre boîte de réception.";
$l_mail_error = "Une erreur s'est produite. Veuillez renouveler votre inscription ou contacter votre administrateur.";
} else { // english
$l_title = "e-mail inscription";
$l_Email = "e-mail address : *";
$l_mandatory = "* Required fields";
$l_inscription = "Inscription";
$l_mail_success = "A password has been sent to your e-mail address.\\nCheck your spam or junk mail, if you don't see this e-mail in your inbox.";
$l_mail_error = "An error has occurred. Please renew your registration or contact your administrator.";
}
?>
 
<!DOCTYPE html>
<html>
<head>
65,23 → 108,19
<input id="buttons" class="btn btn-default" value="Annuler" onclick="window.location.href = 'index.php';">
</div>
<div class="col-5 col-md-4">
<button type="submit" class="btn btn-primary btn-lg" id="buttons" >Inscription</button>
<button type="submit" class="btn btn-primary btn-lg" id="buttons" ><?=$l_inscription?></button>
</div>
</div>
</form>
</section>
 
<script>
$(document).ready(function(){
$("#contenu_acces input").focus(function(){
$("#status").fadeOut(800);
});
 
//Traitement du formulaire d'inscription
$("#contenu_acces").submit(function(){
var status = $("#status");
var Fmail = $("#email").val();
 
$.ajax({
type: "post",
url: "email_registration_back.php",
94,11 → 133,11
success: function(data){
if (data.match("success")) {
status.html(data).fadeIn(400);
alert("Encore une dernière étape!\n\nUn mot de passe temporaire vient d'être envoyé à votre adresse électronique.\n\nVérifier vos spams ou courriers indésirables, si vous ne voyez pas ce mail dans votre boîte de réception.\n\nSi vous ne recevez pas le mail dans les 24 heures contactez votre administrateur.")
alert("<?=$l_mail_success?>");
document.location.href="index.php";
} else {
console.log(data);
alert("Une erreur s'est produite.\n\nVeuillez renouveler votre inscription ou contacter votre administrateur.");
alert("<?=$l_mail_error?>");
status.css("color", "red").html(data).fadeIn(400);
}
}
/web/intercept.php
629,7 → 629,7
<p class="boite-info-text"><?= $l_user ?></p>
</div>
<div class="col-8 col-md-8" id="input_username">
<input type="text" class="form-control boite-info-text" name="username" autocomplete="off" placeholder="<?= $l_user ?>">
<input type="text" class="form-control boite-info-text" name="username" placeholder="<?= $l_user ?>">
</div>
</div>
<div class="form-group row">
637,7 → 637,7
<p class="boite-info-text"><?= $l_password ?></p>
</div>
<div class="col-8 col-md-8" id="input_password">
<input type="password" class="form-control boite-info-text" name="password" autocomplete="off" placeholder="<?= $l_password ?>">
<input type="password" class="form-control boite-info-text" name="password" placeholder="<?= $l_password ?>">
</div>
</div>
</div>