steffen: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php.in, 1.3, 1.4 index.php.in, 1.1, 1.2
cvs at intevation.de
cvs at intevation.de
Wed Mar 29 12:52:16 CEST 2006
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook
In directory doto:/tmp/cvs-serv15445/kolab-webadmin/www/admin/addressbook
Modified Files:
addr.php.in index.php.in
Log Message:
Fix for issue848 + some cleanup
Index: addr.php.in
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- addr.php.in 9 Mar 2006 21:27:22 -0000 1.3
+++ addr.php.in 29 Mar 2006 10:52:14 -0000 1.4
@@ -188,20 +188,33 @@
else $newdn = $dn;
debug("action=save, dn=$dn, newdn=$newdn<br/>\n");
if (strcmp($dn,$newdn) != 0) {
- if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
- ($entry=ldap_first_entry($ldap->connection,$result)) &&
- ($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {
- foreach( $ldap_object as $k => $v ) if( $v == array() ) unset( $ldap_object[$k] );
- if (!ldap_add($ldap->connection,$newdn, $ldap_object) || !ldap_delete($ldap->connection,$dn)) {
- array_push($errors, sprintf(_("LDAP Error: could not rename %s to %s: %s"), $dn,
- $newdn, ldap_error($ldap->connection)));
+ // Check for distribution lists with this entry as member
+ $ldap->search( $_SESSION['base_dn'],
+ '(&(objectClass=kolabGroupOfNames)(!(kolabDeleteFlag=*))(member='.$ldap->escape($dn).'))',
+ array( 'dn', 'mail' ) );
+ $distlists = $ldap->getEntries();
+ unset( $distlists['count'] );
+ foreach( $distlists as $distlist ) {
+ $dlcn = $distlist['mail'][0];
+ $errors[] = sprintf(_("Addressbook entry DN could not be modified, distribution list <a href='@webserver_web_prefix@/admin/distributionlist/list.php?action=modify&dn=%s'>'%s'</a> depends on it. To modify this entry, first remove it from the distribution list."), urlencode($distlist['dn']), $dlcn );
+ }
+
+ if( !$errors ) {
+ if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
+ ($entry=ldap_first_entry($ldap->connection,$result)) &&
+ ($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {
+ foreach( $ldap_object as $k => $v ) if( $v == array() ) unset( $ldap_object[$k] );
+ if (!ldap_add($ldap->connection,$newdn, $ldap_object) || !ldap_delete($ldap->connection,$dn)) {
+ array_push($errors, sprintf(_("LDAP Error: could not rename %s to %s: %s"), $dn,
+ $newdn, ldap_error($ldap->connection)));
+ } else {
+ $messages[] = sprintf( _("%s successfully updated"), $newdn);
+ }
+ $dn = $newdn;
} else {
- $messages[] = sprintf( _("%s successfully updated"), $newdn);
+ array_push($errors,sprintf(_("LDAP Error: could not read %s: %s"), $dn,
+ ldap_error($ldap->connection)));
}
- $dn = $newdn;
- } else {
- array_push($errors,sprintf(_("LDAP Error: could not read %s: %s"), $dn,
- ldap_error($ldap->connection)));
}
} else {
if (!ldap_modify($ldap->connection, $dn, $ldap_object)) {
Index: index.php.in
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/index.php.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- index.php.in 5 Feb 2006 20:13:55 -0000 1.1
+++ index.php.in 29 Mar 2006 10:52:14 -0000 1.2
@@ -1,6 +1,6 @@
<?php
/*
- (c) 2004 Klarãdalens Datakonsult AB
+ (c) 2004 Klaraedalens Datakonsult AB
(c) 2003 Tassilo Erlewein <tassilo.erlewein at erfrakon.de>
(c) 2003 Martin Konold <martin.konold at erfrakon.de>
This program is Free Software under the GNU General Public License (>=v2).
@@ -11,6 +11,7 @@
require_once('@kolab_php_module_prefix at admin/include/headers.php');
require_once('@kolab_php_module_prefix at admin/include/locale.php');
require_once('@kolab_php_module_prefix at admin/include/authenticate.php');
+require_once('@kolab_php_module_prefix at admin/include/form.class.php');
$errors = array();
@@ -35,13 +36,14 @@
else $page = "1";
// Get all entries & dynamically split the letters with growing entries
+$entries = array();
if( !$errors ) {
if (isset($_SESSION['base_dn'])) $base_dn = $_SESSION['base_dn'];
else $base_dn = 'k=kolab';
$userfilter = "cn=*";
- $filterattr = $_REQUEST['filterattr'];
- $filtertype = $_REQUEST['filtertype'];
- $filtervalue = $_REQUEST['filtervalue'];
+ $filterattr = KolabForm::getRequestVar('filterattr');
+ $filtertype = KolabForm::getRequestVar('filtertype');
+ $filtervalue = KolabForm::getRequestVar('filtervalue');
if( !in_array( $filterattr, array( 'cn', 'mail' ) ) ) $filterattr = 'cn';
if( isset( $filtervalue ) && !empty( $filtervalue ) ) {
switch( $filtertype ) {
@@ -63,11 +65,11 @@
if( isset( $_REQUEST['alphalimit']) ) {
$ala='sn'; // alpha limit attibute
switch( $_REQUEST['alphalimit'] ) {
- case a: $alphalimit = "(|($ala=a*)($ala=b*)($ala=c*)($ala=d*)($ala=e*)($ala=f*))"; break;
- case g: $alphalimit = "(|($ala=g*)($ala=h*)($ala=i*)($ala=j*)($ala=k*)($ala=l*))"; break;
- case m: $alphalimit = "(|($ala=m*)($ala=n*)($ala=o*)($ala=p*)($ala=q*)($ala=r*))"; break;
- case s: $alphalimit = "(|($ala=s*)($ala=t*)($ala=u*)($ala=v*)($ala=w*)($ala=x*)($ala=y*)($ala=z*))"; break;
- case other: $alphalimit = "(|($ala=æ*)($ala=ø*)($ala=å*)($ala=ä*)($ala=ö*)($ala=ü*)($ala=0*)($ala=1*)($ala=2*)($ala=3*)($ala=4*)($ala=5*)($ala=6*)($ala=7*)($ala=8*)($ala=9*))"; break;
+ case 'a': $alphalimit = "(|($ala=a*)($ala=b*)($ala=c*)($ala=d*)($ala=e*)($ala=f*))"; break;
+ case 'g': $alphalimit = "(|($ala=g*)($ala=h*)($ala=i*)($ala=j*)($ala=k*)($ala=l*))"; break;
+ case 'm': $alphalimit = "(|($ala=m*)($ala=n*)($ala=o*)($ala=p*)($ala=q*)($ala=r*))"; break;
+ case 's': $alphalimit = "(|($ala=s*)($ala=t*)($ala=u*)($ala=v*)($ala=w*)($ala=x*)($ala=y*)($ala=z*))"; break;
+ case 'other': $alphalimit = "(|($ala=æ*)($ala=ø*)($ala=å*)($ala=ä*)($ala=ö*)($ala=ü*)($ala=0*)($ala=1*)($ala=2*)($ala=3*)($ala=4*)($ala=5*)($ala=6*)($ala=7*)($ala=8*)($ala=9*))"; break;
default: $alphalimit = '';
}
}
More information about the commits
mailing list