steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.39, 1.40
cvs at intevation.de
cvs at intevation.de
Tue Oct 12 03:22:29 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv20612/kolab-webadmin/www/admin/user
Modified Files:
user.php
Log Message:
Fix for problem when moving account between trees
Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- user.php 11 Oct 2004 23:32:49 -0000 1.39
+++ user.php 12 Oct 2004 01:22:27 -0000 1.40
@@ -308,10 +308,10 @@
'uid' => array( 'name' => _('Unique Identity (UID)'),
'validation' => 'checkuid',
'comment' => _('Optional - Defaults to Primary Email Address') ),
- 'kolabhomeserver' => array( 'name' => _('Mailbox Home Server'),
- 'validation' => 'notempty',
- 'comment' => $comment_kolabhomeserver,
- 'value' => $_SESSION['fqdnhostname'] ),
+ 'kolabhomeserver' => array( 'name' => _('Mailbox Home Server'),
+ 'validation' => 'notempty',
+ 'comment' => $comment_kolabhomeserver,
+ 'value' => $_SESSION['fqdnhostname'] ),
'accttype' => array( 'name' => _('Account Type'),
'type' => 'select',
'options' => array( _('User Account'), _('Internal User Account'), _('Group Account'), _('Resource Account') ),
@@ -409,8 +409,10 @@
$ldap_object['mail'] = trim( strtolower( $_POST['mail_0'] ) );
$ldap_object['uid'] = trim( strtolower( $_POST['uid'] ) );
if( $action == 'firstsave' ) {
- if ($ldap_object['uid'] == "") $ldap_object['uid'] = $ldap_object['mail'];
+ if ($ldap_object['uid'] == "") $ldap_object['uid'] = $ldap_object['mail'];
$ldap_object['kolabHomeServer'] = trim($_POST['kolabhomeserver']);
+ } else {
+ unset($ldap_object['kolabHomeServer']);
}
foreach( array( 'title', 'o', 'ou', 'roomNumber', 'street', 'postOfficeBox',
'postalCode', 'l', 'c', 'telephoneNumber',
@@ -437,7 +439,11 @@
debug("Looking at $user:$pol");
$i++;
if( !empty($user) && 0 <= $pol && $pol < 5 ) {
- $ra = array('ACT_ALWAYS_ACCEPT', 'ACT_ALWAYS_REJECT', 'ACT_REJECT_IF_CONFLICTS', 'ACT_MANUAL_IF_CONFLICTS', 'ACT_MANUAL' );
+ $ra = array('ACT_ALWAYS_ACCEPT',
+ 'ACT_ALWAYS_REJECT',
+ 'ACT_REJECT_IF_CONFLICTS',
+ 'ACT_MANUAL_IF_CONFLICTS',
+ 'ACT_MANUAL' );
if( $ra[$pol] ) {
$ldap_object['kolabInvitationPolicy'][] = ($user=='anyone'?"":"$user:").$ra[$pol];
}
@@ -481,6 +487,18 @@
($oldattrs=ldap_get_attributes($ldap->connection,$entry))) {
$ldap_object['uid'] = $oldattrs['uid'][0];
$ldap_object['mail'] = $oldattrs['mail'][0];
+ unset( $oldattrs['count'] );
+ foreach( $oldattrs as $k => $v ) {
+ if( is_int($k) ) continue;
+ if( !$ldap_object[$k] ) {
+ unset($v['count'] );
+ if( count($v) > 1 ) {
+ $ldap_object[$k] = $v;
+ } else {
+ $ldap_object[$k] = $v[0];
+ }
+ }
+ }
if( !$ldap_object['userPassword'] ) $ldap_object['userPassword'] = $oldattrs['userPassword'][0];
foreach( $ldap_object as $k => $v ) {
if( $v == array() ) unset($ldap_object[$k]);
@@ -505,6 +523,7 @@
unset($ldap_object['cn']);
unset($ldap_object['mail']);
unset($ldap_object['uid']);
+ unset($ldap_object['kolabHomeServer']);
}
if (!ldap_modify($ldap->connection, $dn, $ldap_object)) {
array_push($errors, _("LDAP Error: Could not modify object $dn: ")
More information about the commits
mailing list