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