steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user index.php, 1.7, 1.8 user.php, 1.38, 1.39
cvs at intevation.de
cvs at intevation.de
Tue Oct 12 01:32:51 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv12767/kolab-webadmin/www/admin/user
Modified Files:
index.php user.php
Log Message:
Fix for issue451 (internal user/group/resource confusion)
Index: index.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/index.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- index.php 20 Aug 2004 02:10:01 -0000 1.7
+++ index.php 11 Oct 2004 23:32:49 -0000 1.8
@@ -93,13 +93,25 @@
$a = strlen($sn);
$b = strlen($cn);
$fn = substr($cn, 0, $b - $a);
+ $dncomp = split( ',', $dn );
+ if( in_array('cn=groups',$dncomp) ) {
+ $type = 'G';
+ } else if( in_array('cn=resources',$dncomp) ) {
+ $type = 'R';
+ } else if( in_array('cn=internal',$dncomp) ) {
+ $type = 'I';
+ } else {
+ $type = 'U';
+ }
+
// skip admins and maintainers
if( !array_key_exists( $dn, $privmembers ) ) {
$entries[] = array( 'dn' => $dn,
'sn' => $sn,
'fn' => $fn,
+ 'type' => $type,
'mail' => $mail,
- 'uid' => $uid,
+ 'uid' => $uid,
'deleted' => $deleted );
}
$entry = ldap_next_entry( $ldap->connection,$entry );
Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- user.php 11 Oct 2004 13:37:09 -0000 1.38
+++ user.php 11 Oct 2004 23:32:49 -0000 1.39
@@ -138,6 +138,7 @@
}
function fill_form_for_modify( &$form, $dn, &$ldap_object ) {
+ global $auth;
if (is_array($ldap_object['sn'])) $lastname = $ldap_object['sn'][0];
else $lastname = $ldap_object['sn'];
if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0];
@@ -163,13 +164,15 @@
// accttype
$dncomp = split( ',', $dn );
if( in_array('cn=groups',$dncomp) ) {
- $form->entries['accttype']['value'] = 1;
+ $form->entries['accttype']['value'] = 2;
} else if( in_array('cn=resources',$dncomp) ) {
- $form->entries['accttype']['value'] = 2;
+ $form->entries['accttype']['value'] = 3;
+ } else if( in_array('cn=internal',$dncomp) ) {
+ $form->entries['accttype']['value'] = 1;
} else {
$form->entries['accttype']['value'] = 0;
}
- $form->entries['accttype']['attrs'] = 'readonly';
+ if( $auth->group() == 'user' ) $form->entries['accttype']['attrs'] = 'readonly';
// Automatic invitation handling
$policies = array();
@@ -195,17 +198,6 @@
}
$form->entries['resourceaction']['policies'] = $policies;
- // visible
- $internaldn = 'cn=internal,'.domain_dn();
- debug("<br/>internaldn=$internaldn");
- debug("<br/>ldap_object['dn']=$dn");
- debug("<br/>substr=".substr( $dn, strlen($dn)-strlen( $internaldn ) ));
- if( substr( $dn, strlen($dn)-strlen( $internaldn ) ) === $internaldn ) {
- $form->entries['visible']['value'] = false;
- } else {
- $form->entries['visible']['value'] = true;
- }
-
foreach( array( 'title', 'o', 'ou', 'roomNumber', 'street',
'postOfficeBox', 'postalCode', 'l', 'c',
'telephoneNumber', 'facsimileTelephoneNumber' ) as $attr ) {
@@ -321,9 +313,10 @@
'comment' => $comment_kolabhomeserver,
'value' => $_SESSION['fqdnhostname'] ),
'accttype' => array( 'name' => _('Account Type'),
- 'type' => 'select',
- 'options' => array( _('User Account'), _('Group Account'), _('Resource Account') ),
- 'value' => 0 ),
+ 'type' => 'select',
+ 'options' => array( _('User Account'), _('Internal User Account'), _('Group Account'), _('Resource Account') ),
+ 'value' => 0,
+ 'comment' => _('NOTE: An internal user is a user that will not be visible in the address book')),
'resourceaction' => array( 'name' => _('Resource/Group Policies'),
'type' => 'resourcepolicy',
'policies' => array(array( 'user' => 'anyone', 'policyno' => 4 )),
@@ -348,10 +341,6 @@
$entries['c_0'] = array( 'name' => _('Country') );
$entries['telephoneNumber_0'] = array( 'name' => _('Telephone Number') );
$entries['facsimileTelephoneNumber_0'] = array( 'name' => _('Fax Number') );
-$entries['visible'] = array( 'name' => _('Addressbook'),
- 'type' => 'checkbox',
- 'value' => true,
- 'comment' => _('Check here to make this users address <br> visible in the address book'));
if( $auth->group() == "admin" || $auth->group() == "maintainer" ) {
$entries['cyrus-userquota'] = array( 'name' => _('User Quota in MBytes'),
'comment' => _('Leave blank for unlimited') );
@@ -395,7 +384,7 @@
if( !empty( $_POST['password_0'] ) ) {
$ldap_object['userPassword'] = '{sha}'.base64_encode( pack('H*',
sha1( $_POST['password_0'])));
- if( isset( $_POST['accttype'] ) && $_POST['accttype'] > 0 ) {
+ if( isset( $_POST['accttype'] ) && $_POST['accttype'] > 1 ) {
// We have a group or resource, create encrypted pw
$pubkeydata=file_get_contents("$kolab_prefix/etc/kolab/res_pub.pem" );
$pkey = openssl_pkey_get_public( $pubkeydata );
@@ -468,11 +457,6 @@
$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['cyrus-userquota'] ) ) {
$ldap_object['cyrus-userquota'] = trim($_POST['cyrus-userquota']);
@@ -480,21 +464,17 @@
$ldap_object['cyrus-userquota'] = array();
}
}
- if (!$visible) $dn_add = ",cn=internal";
}
if( $_POST['accttype'] == 0 ) $dn_accttype='';
- else if( $_POST['accttype'] == 1 ) $dn_accttype='cn=groups,';
- else if( $_POST['accttype'] == 2 ) $dn_accttype='cn=resources,';
+ else if( $_POST['accttype'] == 1 ) $dn_accttype='cn=internal,';
+ else if( $_POST['accttype'] == 2 ) $dn_accttype='cn=groups,';
+ else if( $_POST['accttype'] == 3 ) $dn_accttype='cn=resources,';
$domain_dn = $dn_accttype.domain_dn();
if ($action == "save") {
if (!$errors) {
if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$domain_dn;
else $newdn = $dn;
- if (!$visible && !strstr($newdn,$dn_add)) {
- list($cn,$rest) = split(',', $newdn, 2);
- $newdn = $cn.$dn_add.','.$rest;
- }
if (strcmp($dn,$newdn) != 0) {
if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
($entry=ldap_first_entry($ldap->connection,$result)) &&
@@ -550,7 +530,6 @@
$form->setValues();
$form->entries['mail_0']['attrs'] = 'readonly';
$form->entries['kolabhomeserver']['attrs'] = 'readonly';
- $form->entries['accttype']['attrs'] = 'readonly';
$form->entries['action']['value'] = 'save';
$form->entries['dn'] = array( 'name' => 'dn',
'type' => 'hidden',
More information about the commits
mailing list