steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.8, 1.9

cvs at intevation.de cvs at intevation.de
Thu Jun 17 11:12:14 CEST 2004


Author: steffen

Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv23291/kolab-webadmin/www/admin/user

Modified Files:
	user.php 
Log Message:
fix for issue191 + "delegate"

Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- user.php	14 Jun 2004 02:13:02 -0000	1.8
+++ user.php	17 Jun 2004 09:12:12 -0000	1.9
@@ -65,6 +65,21 @@
   return $str;
 }
 
+function checkdelegate( $form, $key, $value ) {
+  global $ldap;
+  global $action;
+  global $dn;
+
+  $lst = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', $value ) ), 'strlen') );
+  $str = '';
+  foreach( $lst as $delegate ) {
+	if( $ldap->count( $ldap->search( $_SESSION['base_dn'], '(uid='.$ldap->escape($delegate).')' ) ) == 0 ) {
+	  return "Delegate $delegate does not exist";
+	} 
+  }
+  return '';
+}
+
 // Check that password match
 function checkpw( $form, $key, $value ) {
   global $action;
@@ -104,6 +119,7 @@
   $form->entries['mail_0']['value'] = $mail_0;
   $form->entries['mail_0']['attrs'] = 'readonly';
 
+  // accttype
   $dncomp = split( ',', $dn );
   if( in_array('cn=groups',$dncomp) ) {
 	$form->entries['accttype']['value'] = 1;
@@ -113,6 +129,7 @@
 	$form->entries['accttype']['value'] = 0;
   }
 
+  // visible
   $internaldn = 'cn=internal,'.domain_dn();
   debug("<br/>internaldn=$internaldn");
   debug("<br/>ldap_object['dn']=$dn");
@@ -130,6 +147,8 @@
     else $v = $ldap_object[$attr];
     $form->entries[$attr.'_0']['value'] = $v;
   }
+
+  // alias
   if (is_array($ldap_object['alias'])) {
 	$arr = $ldap_object['alias'];
 	unset( $arr['count'] );
@@ -137,11 +156,25 @@
   }
   else $v = $ldap_object[$attr];
   $form->entries['alias']['value'] = $v;
+
+  // delegate
+  if (is_array($ldap_object['delegate'])) {
+	$arr = $ldap_object['delegate'];
+	unset( $arr['count'] );
+	$v = join("\n", $arr );
+  }
+  else $v = $ldap_object[$attr];
+  $form->entries['delegate']['value'] = $v;
+
+  // homeServer
   if( is_array($ldap_object['homeServer']) ) {
 	$form->entries['homeserver']['value'] = $ldap_object['homeServer'][0];
   }
   $form->entries['homeserver']['attrs'] = 'readonly';
+
   $form->entries['action']['value'] = 'save';
+
+  // userquota
   if( isset( $form->entries['userquota'] ) ) {
     if (is_array($ldap_object['userquota'])) $userquota = $ldap_object['userquota'][0];
     else $userquota = $ldap_object['userquota'];
@@ -227,7 +260,10 @@
 						   'type' => 'textarea',
 						   'validation' => 'checkuniquealias',
 						   'comment' => 'One address per line' );
-
+$entries['delegate'] =array( 'name' => 'Delegates',
+							 'type' => 'textarea',
+							 'validation' => 'checkdelegate',
+							 'comment' => 'One UID per line' );
 $entries['o_0'] = array( 'name' => 'Organisation' );
 $entries['ou_0'] = array( 'name' => 'Organisational Unit' );
 $entries['roomNumber_0'] = array( 'name' => 'Room Number' );
@@ -302,12 +338,24 @@
        }
 
 	   $dn_add = "";
+
+	   // delegate
+	   $ldap_object['delegate'] = array_unique( array_filter( array_map( 'trim', 
+												preg_split( '/\n/', $_POST['delegate'] ) ), 'strlen') );
+	   if( !$ldap_object['delegate'] && $action == 'firstsave' ) unset($ldap_object['delegate']);
+
+
        if ($auth->group() == "maintainer" || $auth->group() == "admin") {
+		 // alias
 		 $ldap_object['alias'] = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', $_POST['alias'] ) ), 'strlen') );	   
 		 if( !$ldap_object['alias'] && $action == 'firstsave' ) unset($ldap_object['alias']);
+
+		 // visible
 		 if (!empty($_POST['visible']) && $_POST['visible'] == "on") 
 		   $visible = true;
 		 else $visible = false;
+
+		 // userquota
 		 if( isset( $_POST['userquota'] ) ) {
 		   $ldap_object['userquota'] = $_POST['userquota'];
 		   if( empty( $ldap_object['userquota'] ) ) {





More information about the commits mailing list