2009-09-06 03:20:22 +02:00
< ? php
/**
* Add / delete a domain
*
* Copyright ( c ) 2004 - 2006 Evolix - Tous droits reserves
* $Id : domaine . php , v 1.2 2009 - 09 - 02 21 : 21 : 24 gcolpart Exp $
*
* @ author Gregory Colpart < reg @ evolix . fr >
* @ version 1.0
*/
/**
* Path
*/
define ( 'EVOADMIN_BASE' , './' );
/**
* PHP cookies session
*/
session_name ( 'EVOADMIN_SESS' );
session_start ();
if ( isset ( $_SESSION [ 'login' ])) {
/**
* Requires
*/
require_once EVOADMIN_BASE . 'common.php' ;
// $login var need for debut.php
$login = $_SESSION [ 'login' ];
include EVOADMIN_BASE . 'haut.php' ;
include EVOADMIN_BASE . 'debut.php' ;
if ( ( ! superadmin ( $login )) || ( $conf [ 'domaines' ][ 'driver' ] != 'ldap' ) ) {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-danger \" role= \" alert \" >Vous n'avez pas les droits pour cette page</div> " ;
2009-09-06 03:20:22 +02:00
EvoLog :: log ( " Access denied on domaine.php " );
include EVOADMIN_BASE . 'fin.php' ;
exit ( 1 );
}
// Supprimer un domaine
if ( isset ( $_GET [ 'del' ]) ) {
$domain = Html :: clean ( $_GET [ 'del' ]);
if ( ( isset ( $_GET [ 'modif' ])) && ( $_GET [ 'modif' ] == 'yes' )) {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-warning \" role= \" alert \" >Votre demande a été envoyé au support. <br> Concernant le domaine <b> $domain </b>...</div> " ;
// 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 );
2009-09-06 03:20:22 +02:00
// 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
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-succes \" role= \" alert \" >Suppression $domain effectuée.</div> " ;
2009-09-06 03:20:22 +02:00
EvoLog :: log ( " Del domain " . $domain );
} else {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-danger \" role= \" alert \" >Erreur, suppression non effectuée.</div> " ;
2009-09-06 03:20:22 +02:00
EvoLog :: log ( " Delete $domain failed " );
}
} else {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-info \" role= \" alert \" >Vous souhaitez effacer complètement le domaine <b> $domain </b>...<br /> Tous les messages et paramètres seront définitivement perdus.</p><a href='domaine.php?del= $domain &modif=yes'>Confirmer la suppression</a></div> " ;
2009-09-06 03:20:22 +02:00
}
} else {
// Ajouter un domaine
if ( ( isset ( $_GET [ 'modif' ])) && ( $_GET [ 'modif' ] == 'yes' )) {
$domain = Html :: clean ( $_POST [ 'domain' ]);
2017-10-11 19:39:22 +02:00
print " <div class='container'> " ;
print " <div class= \" alert alert-warning \" role= \" alert \" >Ajout en cours...</div> " ;
2009-09-06 03:20:22 +02:00
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']));
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-succes \" role= \" alert \" >Ajout effectué.</div> " ;
2009-09-06 03:20:22 +02:00
EvoLog :: log ( " Add domain " . $domain );
// notification par mail
domainnotify ( $domain );
} else {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-danger \" role= \" alert \" >Erreur, envoyez le message d'erreur suivant à votre administrateur :<pre> " ;
2009-09-06 03:20:22 +02:00
var_dump ( $info );
var_dump ( $info2 );
EvoLog :: log ( " Add $domain failed " );
2017-10-11 19:39:22 +02:00
print " </pre></div> " ;
2009-09-06 03:20:22 +02:00
}
2011-10-13 18:22:31 +02:00
} 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.
2011-10-13 18:31:32 +02:00
$info2 [ " sambaSID " ] = $conf [ 'samba' ][ 'sid' ] . ( 2 * $info [ " gidNumber " ] + 1000 );
2011-10-13 18:22:31 +02:00
$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']));
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-success \" role= \" alert \" >Ajout effectué.</div> " ;
2011-10-13 18:22:31 +02:00
EvoLog :: log ( " Add domain " . $domain );
// notification par mail
domainnotify ( $domain );
} else {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-danger \" role= \" alert \" >Erreur, envoyez le message d'erreur suivant à votre administrateur :<pre> " ;
2011-10-13 18:22:31 +02:00
var_dump ( $info );
var_dump ( $info2 );
EvoLog :: log ( " Add $domain failed " );
2017-10-11 19:39:22 +02:00
print " </pre></div> " ;
2011-10-13 18:22:31 +02:00
}
2017-10-11 19:39:22 +02:00
}
2009-09-06 03:20:22 +02:00
} 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 )) {
2009-09-14 16:32:07 +02:00
domain_add ( $domain );
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-success \" role= \" alert \" >Ajout effectué.</div> " ;
2009-09-06 03:20:22 +02:00
EvoLog :: log ( " Add domain " . $domain );
// notification par mail
domainnotify ( $domain );
} else {
2017-10-11 19:39:22 +02:00
print " <div class= \" alert alert-danger \" role= \" alert \" >Erreur, envoyez le message d'erreur suivant à votre administrateur :<pre> " ;
2009-09-06 03:20:22 +02:00
var_dump ( $info );
EvoLog :: log ( " Add $domain failed " );
2017-10-11 19:39:22 +02:00
print " </pre></div> " ;
2009-09-06 03:20:22 +02:00
}
}
2017-10-11 19:39:22 +02:00
print " </div> " ;
2009-09-06 03:20:22 +02:00
// Formulaire d'ajout d'un domaine
} else {
?>
2017-10-11 19:39:22 +02:00
< div class = " container " >
2009-09-06 03:20:22 +02:00
< h4 > Ajout d ' un domaine </ h4 >
2017-10-11 19:39:22 +02:00
< form name = " add " action = " domaine.php?modif=yes " method = " post " class = " form-horizontal " >
2009-09-06 03:20:22 +02:00
2017-10-11 19:39:22 +02:00
< div class = " alert alert-info " role = " alert " > Remplissez lez champs , ceux contenant [ * ] sont obligatoires .</ div >
2009-09-06 03:20:22 +02:00
2017-10-11 19:39:22 +02:00
< div class = " form-group " >
< label for = " domain " class = " col-sm-3 control-label " > Domaine [ * ] :</ label >
< div class = " col-sm-9 " >< input type = " text " name = " domain " class = " form-control " /></ div >
</ div >
2009-09-06 03:20:22 +02:00
2017-10-11 19:39:22 +02:00
< div class = " form-group " >
< label for = " isactive " class = " col-sm-3 control-label " > Activation globale :</ label >
< div class = " col-sm-9 " >< input type = 'checkbox' name = 'isactive' checked class = " form-control move-left " /></ div >
</ div >
2009-09-06 03:20:22 +02:00
2017-10-11 19:39:22 +02:00
< div class = " text-center " >< button type = " submit " class = " btn btn-primary " > Valider </ button ></ div >
2009-09-06 03:20:22 +02:00
</ form >
2017-10-11 19:39:22 +02:00
</ div >
2009-09-06 03:20:22 +02:00
< ? php
}
}
//if (isset($_SESSION['login']))
} else {
header ( " location: auth.php \n \n " );
exit ( 0 );
}
include EVOADMIN_BASE . 'fin.php' ;
?>