steffen: server/kolab-webadmin/kolab-webadmin/php/admin/include debug.php, 1.2, 1.3 ldap.class.php, 1.1, 1.2
cvs at intevation.de
cvs at intevation.de
Thu May 27 17:59:29 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include
In directory doto:/tmp/cvs-serv15704/kolab-webadmin/php/admin/include
Modified Files:
debug.php ldap.class.php
Log Message:
thorough duplicate mail address checks for users
Index: debug.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/debug.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- debug.php 25 May 2004 03:25:01 -0000 1.2
+++ debug.php 27 May 2004 15:59:27 -0000 1.3
@@ -6,6 +6,11 @@
function debug($str) {
//print $str.'<br/>';
}
+function debug_var_dump($var) {
+ //print '<pre>';
+ //var_dump($var);
+ //print '</pre>';
+}
function backtrace() {
$debug_array = debug_backtrace();
$counter = count($debug_array);
Index: ldap.class.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/php/admin/include/ldap.class.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ldap.class.php 17 May 2004 15:24:26 -0000 1.1
+++ ldap.class.php 27 May 2004 15:59:27 -0000 1.2
@@ -1,6 +1,6 @@
<?php
/*
- * Copyright (c) 2004 Klarälvdalens Datakonsult AB
+ * Copyright (c) 2004 Klarälvdalens Datakonsult AB
*
* Written by Steffen Hansen <steffen at klaralvdalens-datakonsult.se>
*
@@ -19,6 +19,7 @@
*/
require_once('session_vars.php');
+require_once('debug.php');
class KolabLDAP {
function KolabLDAP() {
@@ -104,9 +105,13 @@
return $ldap_object;
}
- function search( $base, $filter ) {
+ function search( $base, $filter, $attrs = false ) {
$this->freeSearchResult();
- $this->search_result = ldap_search( $this->connection, $base, $filter );
+ if( $attrs ) {
+ $this->search_result = ldap_search( $this->connection, $base, $filter, $attrs );
+ } else {
+ $this->search_result = ldap_search( $this->connection, $base, $filter );
+ }
return $this->search_result;
}
@@ -175,6 +180,46 @@
}
ldap_free_result( $res );
return $privmembers;
+ }
+
+ // Count the number of occurences of an email address
+ // in users' mail and alias attributes and in dist. lists.
+ // This can be used to check for uniqueness etc.
+ function countMail( $base, $mail , $excludedn=false ) {
+ // First count users
+ $filter = '(|(mail='.$this->escape($mail).')(alias='.$this->escape($mail).'))';
+ $res = $this->search( $base, $filter, array( 'dn' ) );
+ $count = 0;
+
+ $entries = ldap_get_entries( $this->connection, $res );
+ if( $excludedn ) {
+ for ( $i = 0; $i < count( $entries ); $i++ ) {
+ if( is_null( $entries[$i] ) ) continue;
+ if( $entries[$i]['dn'] == $excludedn ) continue;
+ debug("found ".$entries[$i]['dn'] );
+ $count++;
+ }
+ } else $count += $entries['count'];
+
+ // Now count dist. lists
+ $cn = substr( $mail, 0, strpos( $mail, '@' ) );
+ $filter = '(&(objectClass=groupOfNames)(cn='.$this->escape($cn).'))';
+ $res = $this->search( $base, $filter, array( 'dn' ) );
+
+ $entries = ldap_get_entries( $this->connection, $res );
+ if( $excludedn ) {
+ for ( $i = 0; $i < count( $entries ); $i++ ) {
+ if( is_null( $entries[$i] ) ) continue;
+ if( $entries[$i]['dn'] == $excludedn ) continue;
+ debug("found ".$entries[$i]['dn'] );
+ $count++;
+ }
+ } else $count += $entries['count'];
+
+ debug("Got $count addresses");
+
+ $this->freeSearchResult();
+ return $count;
}
var $connection;
More information about the commits
mailing list