steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.62.2.4, 1.62.2.5

cvs at kolab.org cvs at kolab.org
Fri Dec 8 22:13:00 CET 2006


Author: steffen

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

Modified Files:
      Tag: kolab_2_0_branch
	user.php 
Log Message:
Fix for issue1418 (Field customisation issue)

Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/Attic/user.php,v
retrieving revision 1.62.2.4
retrieving revision 1.62.2.5
diff -u -d -r1.62.2.4 -r1.62.2.5
--- user.php	11 Jan 2006 03:46:22 -0000	1.62.2.4
+++ user.php	8 Dec 2006 21:12:58 -0000	1.62.2.5
@@ -178,6 +178,7 @@
 	  if( $attributeaccess[$akey] == 'ro' ) {
 		$entries[$key]['attrs'] = 'readonly';
 	  } else if( $attributeaccess[$akey] == 'hidden' ) {
+		  //$entries[$key]['attrs'] = 'hidden';
 		unset($entries[$key]);
 	  } else if( $attributeaccess[$akey] == 'mandatory' ) {
 		if( isset( $entries[$key]['validation'] ) ) {
@@ -211,68 +212,74 @@
   else $mail = $ldap_object['mail'];
   if (is_array($ldap_object['uid'])) $uid = $ldap_object['uid'][0];
   else $uid = $ldap_object['uid'];
-  $form->entries['givenname']['value'] = $givenname;
-  $form->entries['sn']['value'] = $sn;
-  $form->entries['password_0']['value'] = '';
-  $form->entries['password_1']['value'] = '';
-  $form->entries['mail']['value'] = $mail;
-  $form->entries['mail']['attrs'] = 'readonly';
-  $form->entries['uid']['value'] = $uid;
-
+  if(array_key_exists('givenname',$form->entries)) $form->entries['givenname']['value'] = $givenname;
+  if(array_key_exists('sn',$form->entries)) $form->entries['sn']['value'] = $sn;
+  if(array_key_exists('password_0',$form->entries))  $form->entries['password_0']['value'] = '';
+  if(array_key_exists('password_1',$form->entries))  $form->entries['password_1']['value'] = '';
+  if(array_key_exists('mail',$form->entries))  $form->entries['mail']['value'] = $mail;
+  if(array_key_exists('mail',$form->entries))  $form->entries['mail']['attrs'] = 'readonly';
+  if(array_key_exists('uid',$form->entries))  $form->entries['uid']['value'] = $uid;
   // accttype
   $dncomp = split( ',', $dn );
-  if( in_array('cn=groups',$dncomp) ) {
-	$form->entries['accttype']['value'] = 2;
-  } else if( in_array('cn=resources',$dncomp) ) {
-	$form->entries['accttype']['value'] = 3;	
-  } else if( in_array('cn=internal',$dncomp) ) {
-	$form->entries['accttype']['value'] = 1;	
-  } else {
-	$form->entries['accttype']['value'] = 0;
+  if(array_key_exists('acctype',$form->entries)) {
+	  if( in_array('cn=groups',$dncomp) ) {
+		  $form->entries['accttype']['value'] = 2;
+	  } else if( in_array('cn=resources',$dncomp) ) {
+		  $form->entries['accttype']['value'] = 3;	
+	  } else if( in_array('cn=internal',$dncomp) ) {
+		  $form->entries['accttype']['value'] = 1;	
+	  } else {
+		  $form->entries['accttype']['value'] = 0;
+	  }
+	  if( $auth->group() == 'user' ) $form->entries['accttype']['attrs'] = 'readonly';
   }
-  if( $auth->group() == 'user' ) $form->entries['accttype']['attrs'] = 'readonly';
 
   // Automatic invitation handling
-  $policies = array();
-  for( $i = 0; $i < $ldap_object['kolabInvitationPolicy']['count']; $i++ ) {
-	$resact = $ldap_object['kolabInvitationPolicy'][$i];
-	debug("resact=$resact");
-	if( ereg( '(.*):(.*)', trim($resact), $regs ) ) {
-	  $user = trim($regs[1]);
-	  $pol  = trim($regs[2]);
-	  if( empty($user) ) continue;
-	} else {
-	  $user = 'anyone';
-	  $pol = trim($resact);
-	}
-	if( $form->entries['accttype']['value'] == 1 ) {
-	  // default for groups
-	  $pol = policy2number( $pol, 3 /*ACT_MANUAL_IF_CONFLICTS*/ );
-	} else {
-	  // default for resources
-	  $pol = policy2number( $pol, 2 /*ACT_REJECT_IF_CONFLICTS*/ );
-	}
-	$policies[$user] = $pol;
+  if(array_key_exists('kolabinvitationpolicy',$form->entries)) {
+	  $policies = array();
+	  for( $i = 0; $i < $ldap_object['kolabInvitationPolicy']['count']; $i++ ) {
+		  $resact = $ldap_object['kolabInvitationPolicy'][$i];
+		  debug("resact=$resact");
+		  if( ereg( '(.*):(.*)', trim($resact), $regs ) ) {
+			  $user = trim($regs[1]);
+			  $pol  = trim($regs[2]);
+			  if( empty($user) ) continue;
+		  } else {
+			  $user = 'anyone';
+			  $pol = trim($resact);
+		  }
+		  if( $form->entries['accttype']['value'] == 1 ) {
+			  // default for groups
+			  $pol = policy2number( $pol, 3 /*ACT_MANUAL_IF_CONFLICTS*/ );
+		  } else {
+			  // default for resources
+			  $pol = policy2number( $pol, 2 /*ACT_REJECT_IF_CONFLICTS*/ );
+		  }
+		  $policies[$user] = $pol;
+	  }
+	  if( !isset( $policies['anyone'] ) ) $policies['anyone'] = 4 /*ACT_MANUAL*/;
+	  $form->entries['kolabinvitationpolicy']['policies'] = $policies;  
   }
-  if( !isset( $policies['anyone'] ) ) $policies['anyone'] = 4 /*ACT_MANUAL*/;
-  $form->entries['kolabinvitationpolicy']['policies'] = $policies;  
 
   foreach( array( 'title', 'o', 'ou', 'roomNumber', 'street', 
 				  'postOfficeBox', 'postalCode', 'l', 'c', 
 				  'telephoneNumber', 'facsimileTelephoneNumber' ) as $attr ) {
+	if(!array_key_exists($attr.'_0',$form->entries)) continue;
     if (is_array($ldap_object[$attr])) $v = $ldap_object[$attr][0];
     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'] );
-	$v = join("\n", $arr );
+  if(array_key_exists('alias',$form->entries)) {
+	  if (is_array($ldap_object['alias'])) {
+		  $arr = $ldap_object['alias'];
+		  unset( $arr['count'] );
+		  $v = join("\n", $arr );
+	  }
+	  else $v = "";
+	  $form->entries['alias']['value'] = $v;
   }
-  else $v = "";
-  $form->entries['alias']['value'] = $v;
 
   // kolabdelegate
   if (is_array($ldap_object['kolabDelegate'])) {
@@ -281,14 +288,15 @@
 	$v = join("\n", $arr );
   }
   else $v = "";
-  $form->entries['kolabdelegate']['value'] = $v;
+  if(array_key_exists('kolabdelegate',$form->entries)) $form->entries['kolabdelegate']['value'] = $v;
 
   // kolabhomeserver
-  if( is_array($ldap_object['kolabHomeServer']) ) {
-	$form->entries['kolabhomeserver']['value'] = $ldap_object['kolabHomeServer'][0];
+  if(array_key_exists('kolabhomeserver',$form->entries)) {
+	  if( is_array($ldap_object['kolabHomeServer']) ) {
+		  $form->entries['kolabhomeserver']['value'] = $ldap_object['kolabHomeServer'][0];
+	  }
+	  $form->entries['kolabhomeserver']['attrs'] = 'readonly';
   }
-  $form->entries['kolabhomeserver']['attrs'] = 'readonly';
-
   $form->entries['action']['value'] = 'save';
 
   // userquota
@@ -307,8 +315,8 @@
 	if( is_array( $ldap_object['kolabFreeBusyFuture'] ) ) 
 	  $freebusyfuture = $ldap_object['kolabFreeBusyFuture'][0];
 	else $freebusyfuture = $ldap_object['kolabFreeBusyFuture'];
+	$form->entries['kolabFreeBusyFuture_0']['value'] = $freebusyfuture;
   }
-  $form->entries['kolabFreeBusyFuture_0']['value'] = $freebusyfuture;
 }
 
 /**** Authentication etc. ***/
@@ -504,7 +512,7 @@
 		 }
 		 if ($count > 0) $ldap_object[$attr] = $args;
 		 elseif (!empty($_POST[$key])) $ldap_object[$attr] = $_POST[$key];  
-		 else $ldap_object[$attr] = array();
+		 else/*if (in_array($key,$_POST))*/ $ldap_object[$attr] = array();
        }
 	   {
 		 // Handle group/resource policies





More information about the commits mailing list