steffen: server/kolab-webadmin/kolab-webadmin/www/admin/addressbook addr.php, 1.9, 1.10
cvs at intevation.de
cvs at intevation.de
Thu Jun 16 02:32:12 CEST 2005
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook
In directory doto:/tmp/cvs-serv21018/kolab-webadmin/www/admin/addressbook
Modified Files:
addr.php
Log Message:
verification bugs (Issue804) and form elements readonly looknfeel (Issue797)
Index: addr.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/addressbook/addr.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- addr.php 28 May 2005 20:56:05 -0000 1.9
+++ addr.php 16 Jun 2005 00:32:10 -0000 1.10
@@ -54,18 +54,43 @@
$form->entries['action']['value'] = 'save';
}
+$dn="";
+if (!empty($_REQUEST['dn'])) $dn = trim($_REQUEST['dn']);
+
function checkuniquemail( $form, $key, $value ) {
global $ldap;
+ global $dn;
+ global $action;
$value = trim($value);
if( $value == '' ) return ''; // OK
- if( $ldap->countMail( $_SESSION['base_dn'], $value ) > 0 ) {
+ $excludedn = false;
+ if( $action == 'save' ) $excludedn = trim($dn);
+
+ if( $ldap->countMail( $_SESSION['base_dn'], $value, $excludedn ) > 0 ) {
return _('User, vCard or distribution list with this email address already exists');
} else {
return '';
}
}
+function checkuniquealias( $form, $key, $value ) {
+ global $ldap;
+ global $action;
+ global $dn;
+ $excludedn = false;
+ if( $action == 'save' ) $excludedn = trim($dn);
+ $lst = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', $value ) ), 'strlen') );
+ $str = '';
+ foreach( $lst as $alias ) {
+ debug( "looking at $alias, exluding $dn" );
+ if( $ldap->countMail( $_SESSION['base_dn'], $alias, $excludedn ) > 0 ) {
+ $str .= _('Email address ').htmlentities($alias)._(' collision <br />');
+ }
+ }
+ return $str;
+}
+
/**** Submenu for current page ***/
$menuitems[$sidx]['selected'] = 'selected';
$heading = '';
@@ -75,9 +100,6 @@
in_array($_REQUEST['action'],$valid_actions)) $action = trim($_REQUEST['action']);
else array_push($errors, _("Error: need valid action to proceed") );
-$dn="";
-if (!empty($_REQUEST['dn'])) $dn = trim($_REQUEST['dn']);
-
if (!$errors && $auth->group() != 'maintainer' && $auth->group() != 'admin')
array_push($errors, _("Error: You don't have the required Permissions") );
@@ -97,6 +119,7 @@
'validation' => 'checkuniquemail' ),
'alias' => array( 'name' => _('E-Mail Aliases'),
'type' => 'textarea',
+ 'validation' => 'checkuniquealias',
'comment' => _('One address per line')),
'o' => array( 'name' => _('Organisation') ),
'ou' => array( 'name' => _('Organisational Unit') ),
@@ -111,10 +134,9 @@
$entries['action'] = array( 'name' => 'action',
'type' => 'hidden' );
-if( $action == 'modify' || $action == 'delete' ) {
- if( $_POST['dn'] ) {
- $dn = $POST['dn'];
- } else if( $_REQUEST['dn'] ) {
+$dn = '';
+if( $action == 'modify' || $action == 'delete' || $action == 'save') {
+ if( $_REQUEST['dn'] ) {
$dn = $_REQUEST['dn'];
} else {
array_push($errors, _("Error: DN required for $action operation") );
@@ -164,6 +186,7 @@
if (!$errors) {
if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$addressbook_root;
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)) &&
@@ -232,6 +255,11 @@
}
break;
case 'delete':
+ foreach( $form->entries as $k => $v ) {
+ if( $v['type'] != 'hidden' ) {
+ $form->entries[$k]['attrs'] = 'readonly';
+ }
+ }
$result = $ldap->search( $dn, '(objectClass=*)' );
if( $result ) {
$ldap_object = ldap_get_entries( $ldap->connection, $result );
More information about the commits
mailing list