steffen: server/kolab-webadmin/kolab-webadmin/www/admin/user user.php, 1.58, 1.59
cvs at intevation.de
cvs at intevation.de
Wed Apr 27 23:40:01 CEST 2005
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user
In directory doto:/tmp/cvs-serv10265/kolab-webadmin/www/admin/user
Modified Files:
user.php
Log Message:
Prevent deletion of accounts when they are the last member of a dist. list (Issue607)
Index: user.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/user/user.php,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- user.php 9 Apr 2005 08:55:02 -0000 1.58
+++ user.php 27 Apr 2005 21:39:59 -0000 1.59
@@ -718,6 +718,19 @@
if (!$dn) array_push($errors, _("Error: need dn for delete operation"));
elseif ($auth->group() != "maintainer" && $auth->group() != "admin")
array_push($errors, _("Error: you need administrative permissions to delete users"));
+
+ // Check for distribution lists with only this user as member
+ $ldap->search( $_SESSION['base_dn'],
+ '(&(objectClass=kolabGroupOfNames)(member='.$ldap->escape($dn).'))',
+ array( 'dn', 'cn', 'member' ) );
+ $distlists = $ldap->getEntries();
+ foreach( $distlists as $distlist ) {
+ if( $distlist['member']['count'] == 1 ) {
+ $dlcn = $distlist['cn'][0];
+ $errors[] = _("Account could not be deleted, distribution list '$dlcn' depends on it.");
+ }
+ }
+
if( !$errors ) {
if (!$ldap->deleteObject($dn)) {
array_push($errors, _("LDAP Error: could not mark '$dn' for deletion: ").$ldap->error());
@@ -726,6 +739,19 @@
$contenttemplate = 'userdeleted.tpl';
}
}
+
+ if( $errors ) {
+ $heading = _('Delete User');
+ foreach( $form->entries as $k => $v ) {
+ if( $v['type'] != 'hidden' ) {
+ $form->entries[$k]['attrs'] = 'readonly';
+ }
+ }
+ fill_form_for_modify( $form, $dn, $ldap_object );
+ $form->entries['action']['value'] = 'kill';
+ $form->submittext = _('Delete');
+ $content = $form->outputForm();
+ }
break;
}
More information about the commits
mailing list