Fix a bug with LDAP schema for evoadmin v3 for domain admins.

This commit is contained in:
Romain Dessort 2013-03-25 10:50:41 +00:00
parent 6d5738b30a
commit 678126d86c
3 changed files with 24 additions and 3 deletions

View file

@ -26,6 +26,10 @@ $conf['domaines']['file']['gid'] = 1000;
// uniquement possible si $conf['admin']['what']=1 !!
//$conf['domaines']['ldap']['virtual'] = false;
// Mode cluster
// Uniquement en mode mail seul et des utilisateurs virtuels
$conf['evoadmin']['cluster'] = true;
// auth SMTP by default ?
$conf['evoadmin']['useauthsmtp'] = false;

View file

@ -9,7 +9,8 @@
* @version 1.0
*/
define("LDAP_URI","ldap://127.0.0.1");
#define("LDAP_URI","ldap://127.0.0.1");
$ldap_servers = array('ldap://127.0.0.1', 'ldap://12');
define("LDAP_BASE","dc=example,dc=com");
define("LDAP_ADMIN_DN","cn=admin,dc=example,dc=com");
define("LDAP_ADMIN_PASS","xxxxx");

View file

@ -82,7 +82,16 @@ if (isset($_SESSION['login'])) {
// driver 'ldap'
if ( $conf['domaines']['driver'] == 'ldap' ) {
$ldapconn = Ldap::lda_connect(LDAP_ADMIN_DN,LDAP_ADMIN_PASS);
//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) {
@ -124,8 +133,15 @@ if (isset($_SESSION['login'])) {
// 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
$mydomain = preg_replace("/uid=" .$login. ",domain=((?:(?:[0-9a-zA-Z_\-]+)\.){1,}(?:[0-9a-zA-Z_\-]+)),"
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);
}