* @version 1.0
*/
// Force authentication on this page
require_once("lib/auth.php");
/**
* Path
*/
define('EVOADMIN_BASE','./');
/**
* Requires
*/
require_once EVOADMIN_BASE . 'lib/common.php';
include EVOADMIN_BASE . 'inc/haut.php';
include EVOADMIN_BASE . 'inc/debut.php';
if ( (!superadmin($login)) || ($conf['domaines']['driver'] != 'ldap') ) {
print "
Votre demande a été envoyé au support.
Concernant le domaine $domain...
";
// Envoit d'une demande de suppression
$entete = "From: ".$conf['admin']['mail']."\n";
$entete .= "MIME-Version: 1.0\n";
$entete .= "Content-type: text/plain; charset=utf-8\n";
$entete .= "Content-Transfer-Encoding: quoted-printable\n";
$contenu = "Bonjour,\n\n";
$contenu .= "Pourriez vous supprimer le domaine : $domain\n";
$contenu .= "Cordialement,\n";
mail($conf['admin']['mail'], 'Suppression d\'un domaine mail',$contenu,$entete);
// TODO : Verifier que l'objet existe avant sa suppression
//$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
//$sr = Ldap::lda_del($ldapconn,"domain=" .$domain. "," .$rdn);
if ( $sr ) {
// script suppression systeme
//unix_del_dom($domain);
// TODO : suppression comptes associes
print "Suppression $domain effectuée.
";
EvoLog::log("Del domain ".$domain);
} else {
print "Erreur, suppression non effectuée.
";
EvoLog::log("Delete $domain failed");
}
} else {
print "";
print "
Ajout en cours...
";
if (!$conf['domaines']['ldap']['virtual']) {
if ( $conf['evoadmin']['version'] == 1) {
$info["domain"]=$domain;
$info["objectclass"][0] = "ldapDomain";
$info["postfixTransport"] = "local:";
$info["accountActive"] = (isset($_POST['isactive'])) ? "TRUE" : "FALSE";
$info2["cn"] = $domain;
$info2["objectclass"]="posixGroup";
// recuperer un uid number valide
// TODO : erreur si uid non compris entre 1000 et 29999
$info2["gidNumber"]= getfreegid();
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
// on teste si LDAP est content
if ( ldap_add($ldapconn,"domain=" .$domain. "," .LDAP_BASE, $info)
&& ldap_add($ldapconn,"cn=" .$domain. ",ou=group," .LDAP_BASE, $info2) ) {
// script ajout systeme (TODO : quota)
//unix_add($uid,getgid($_SESSION['domain']));
print "
Ajout effectué.
";
EvoLog::log("Add domain ".$domain);
// notification par mail
domainnotify($domain);
} else {
print "
Erreur, envoyez le message d'erreur suivant à votre administrateur :
";
var_dump($info);
var_dump($info2);
EvoLog::log("Add $domain failed");
print "
";
}
} elseif ( $conf['evoadmin']['version'] == 3) {
// Version specifique pour steloi
$info["cn"] = $domain;
$info["objectclass"][0] = "postfixDomain";
$info["postfixTransport"] = "local:";
//$info["accountActive"] = (isset($_POST['isactive'])) ? "TRUE" : "FALSE";
// recuperer un uid number valide
// TODO : erreur si uid non compris entre 1000 et 29999
$info["gidNumber"]= getfreegid();
$info2["cn"] = $domain;
$info2["objectclass"][0]="posixGroup";
$info2["objectclass"][1]="sambaGroupMapping";
$info2["gidNumber"]= $info["gidNumber"];
$info2["displayName"]= $domain;
$info2["sambaGroupType"]= "2";
// generation du sambaSID comme dans le add.pl.
$info2["sambaSID"]= $conf['samba']['sid'] . (2*$info["gidNumber"]+1000);
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
// on teste si LDAP est content
if ( ldap_add($ldapconn,"cn=" .$domain. "," .LDAP_BASE, $info)
&& ldap_add($ldapconn,"cn=" .$domain. ",ou=groups," .LDAP_BASE, $info2) ) {
// script ajout systeme (TODO : quota)
//unix_add($uid,getgid($_SESSION['domain']));
print "
Ajout effectué.
";
EvoLog::log("Add domain ".$domain);
// notification par mail
domainnotify($domain);
} else {
print "
Erreur, envoyez le message d'erreur suivant à votre administrateur :
";
var_dump($info);
var_dump($info2);
EvoLog::log("Add $domain failed");
print "
";
}
}
} else {
// Ajout d'un domaine virtuel
$info["cn"]=$domain;
$info["objectclass"][0] = "postfixDomain";
$info["objectclass"][1] = "posixGroup";
$info["postfixTransport"] = "virtual:";
$info["isActive"] = (isset($_POST['isactive'])) ? "TRUE" : "FALSE";
// recuperer un uid number valide
// TODO : erreur si uid non compris entre 1000 et 29999
$info["gidNumber"]= getfreegid();
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
// on teste si LDAP est content
if (ldap_add($ldapconn,"cn=" .$domain. "," .LDAP_BASE, $info)) {
domain_add($domain);
print "
Ajout effectué.
";
EvoLog::log("Add domain ".$domain);
// notification par mail
domainnotify($domain);
} else {
print "
Erreur, envoyez le message d'erreur suivant à votre administrateur :
";
var_dump($info);
EvoLog::log("Add $domain failed");
print "
";
}
}
print "
";
// Formulaire d'ajout d'un domaine
} else {
?>