* @version 1.0
*/
/*
* Functions
*/
/**
* Show domain details
* @param string $domain
* @return NULL
*/
function show_domaine_details($domain) {
global $conf;
print '
' .$domain. ' | ';
// TODO : synchronization OpenLDAP<-Active Directory
// print 'N/A | ';
print '' .(getnumber($domain,'compte')+getnumber($domain,'alias')). ' | ';
print '' .getnumber($domain,'mail'). ' | ';
//print '' .getnumber($domain,'smb'). ' | ';
print '' .getnumber($domain,'alias'). ' | ';
print '' .getquota($domain,'group'). ' | ';
print '';
// suppression possible que si utilisation de LDAP
if ( $conf['domaines']['driver'] == 'ldap' ) {
print '';
} else {
print "Impossible";
}
print ' |
';
}
/**
* Path
*/
define('EVOADMIN_BASE','./');
/**
* PHP cookies session
*/
session_name('EVOADMIN_SESS');
session_start();
if (isset($_SESSION['login'])) {
/**
* Requires
*/
require_once EVOADMIN_BASE . 'lib/common.php';
include EVOADMIN_BASE . 'inc/haut.php';
$login = $_SESSION['login'];
// pas de domaine/variable domaine sur superadmin.php
unset($_SESSION['domain']);
global $conf;
// array with all domains with rights on
$domaines = array();
// If you are superadmin, you view all domains
if (superadmin($login)) {
// driver 'ldap'
if ( $conf['domaines']['driver'] == 'ldap' ) {
//TODO: foreach LDAP serveurs
if ($conf['evoadmin']['cluster']) {
$ldapconns = array();
foreach ($ldap_servers as $server) {
array_push($ldapconns, Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS));
}
}
else {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
}
if ($ldapconn) {
// compatibilite anciens schemas
if ($conf['evoadmin']['version'] == 1) {
$filter="(objectClass=ldapDomain)";
} else {
$filter="(objectClass=postfixDomain)";
}
$sr=ldap_search($ldapconn, LDAP_BASE, $filter);
$info = ldap_get_entries($ldapconn, $sr);
for ($i=0;$i<$info["count"];$i++) {
// compatibilite anciens schemas
if ($conf['evoadmin']['version'] == 1) {
array_push($domaines,$info[$i]["domain"][0]);
} else {
array_push($domaines,$info[$i]["cn"][0]);
}
}
ldap_unbind($ldapconn);
} else {
print "Erreur de connexion : $ldapconn
";
EvoLog::log("LDAP connection failed");
}
// driver 'file'
} elseif ( $conf['domaines']['driver'] == 'file' ) {
$domaines = $conf['domaines']['file']['all'];
}
// If you are not superadmin...
} elseif ( $conf['domaines']['driver'] == 'file' ) {
// you view all if using driver 'file'
$domaines = $conf['domaines']['file']['all'];
} elseif ( $conf['domaines']['driver'] == 'ldap' ) {
// you view only your domain if using driver 'ldap'
// we select domain in your DN
// thanks to http://www.physiol.ox.ac.uk/~trp/regexp.html
if ($conf['evoadmin']['version'] <= 2) {
$mydomain = preg_replace("/uid=" .$login. ",domain=((?:(?:[0-9a-zA-Z_\-]+)\.){1,}(?:[0-9a-zA-Z_\-]+)),"
. LDAP_BASE ."/","$1",$_SESSION['dn']);
}
else {
$mydomain = preg_replace("/uid=" .$login. ",cn=((?:(?:[0-9a-zA-Z_\-]+)\.){1,}(?:[0-9a-zA-Z_\-]+)),"
. LDAP_BASE ."/","$1",$_SESSION['dn']);
}
array_push($domaines,$mydomain);
}
// alphanumerique sort before displaying domains
sort($domaines);
include EVOADMIN_BASE . 'inc/debut.php';
// with driver 'ldap', we can add a domain
// TODO : retrict to superadmin guys
// if ( $conf['domaines']['driver'] == 'ldap' ) {
// print '
// Ajouter un domaine...
';
// }
?>
Liste des domaines administrables :
Nom du domaine |
Nombre de comptes |
dont comptes mail |
Nombre d'alias mail |
Taille / Quota |
Suppr. |