#!/usr/bin/perl # delete_user.cgi # Delete a user, after asking for confirmation require './user-lib.pl'; &ReadParse(); &lock_user_files(); @ulist = &list_users(); ($user) = grep { $_->{'user'} eq $in{'user'} } @ulist; $user || &error($text{'uedit_egone'}); &error_setup($text{'udel_err'}); &can_edit_user(\%access, $user) || &error($text{'udel_euser'}); $access{'udelete'} || &error($text{'udel_euser'}); $| = 1; &ui_print_header(undef, $text{'udel_title'}, ""); if (!$config{'delete_root'} && $user->{'uid'} <= 10) { print "<b>$text{'udel_eroot'}</b>\n"; &ui_print_footer("", $text{'index_return'}); exit; } # Check for repeat click if ($user->{'user'} ne $in{'user'} || $in{'user'} eq '') { print "<b>$text{'udel_ealready'}</b>\n"; &ui_print_footer("", $text{'index_return'}); exit; } if ($in{'confirmed'}) { # Run the before command local @secs; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); if (&indexof($user->{'user'}, @mems) >= 0) { push(@secs, $g->{'gid'}); } } # Go ahead and do it! &set_user_envs($user, 'DELETE_USER', undef, \@secs); $merr = &making_changes(); &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined($merr)); # Delete in other modules first $in{'others'} = !$access{'dothers'} if ($access{'dothers'} != 1); if ($in{'others'}) { print "$text{'udel_other'}<br>\n"; local $error_must_die = 1; eval { &other_modules("useradmin_delete_user", $user); }; if ($@) { print &text('udel_failed', $@),"<p>\n"; } else { print "$text{'udel_done'}<p>\n"; } } # Delete the user print "$text{'udel_pass'}<br>\n"; &delete_user($user); print "$text{'udel_done'}<p>\n"; # Delete the user from other groups print "$text{'udel_groups'}<br>\n"; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); $idx = &indexof($user->{'user'}, @mems); if ($idx >= 0) { splice(@mems, $idx, 1); %newg = %$g; $newg{'members'} = join(',', @mems); &modify_group($g, \%newg); } $mygroup = $g if ($g->{'group'} eq $user->{'user'}); } print "$text{'udel_done'}<p>\n"; # Delete the user's personal group, if it has no other members if ($mygroup && !$mygroup->{'members'}) { local $another; foreach $ou (&list_users()) { $another = $ou if ($ou->{'gid'} == $mygroup->{'gid'}); } if (!$another && $in{'others'}) { print "$text{'udel_ugroupother'}<br>\n"; local $error_must_die = 1; eval { &other_modules("useradmin_delete_group", $mygroup); }; if ($@) { print &text('udel_failed', $@),"<p>\n"; } else { print "$text{'gdel_done'}<p>\n"; } } if (!$another) { print "$text{'udel_ugroup'}<br>\n"; &delete_group($mygroup); print "$text{'udel_done'}<p>\n"; } } &unlock_user_files(); if ($in{'delhome'} && $user->{'home'} !~ /^\/+$/ && $access{'delhome'} != 0) { # Delete home directory print "$text{'udel_home'}<br>\n"; &lock_file($user->{'home'}); &delete_home_directory($user); &unlock_file($user->{'home'}); print "$text{'udel_done'}<p>\n"; } &made_changes(); %p = ( %in, %$user ); delete($p{'pass'}); &webmin_log("delete", "user", $user->{'user'}, \%p); done: &ui_print_footer("", $text{'index_return'}); } else { # Check if something has changed if ($user->{'user'} ne $in{'user'}) { print "<b>$text{'udel_echanged'}</b> <p>\n"; &ui_print_footer("", $text{'index_return'}); exit; } # Ask if the user is sure @buts = ( ); if ($user->{'home'} ne "/" && -d $user->{'home'} && $access{'delhome'} != 0) { # Has a home directory, so check for files owned by others $size = &disk_usage_kb($user->{'home'}); $msg = &text('udel_sure', &html_escape($user->{'user'}), "<tt>".&html_escape($user->{'home'})."</tt>", &nice_size($size*1024)); if ($access{'delhome'} != 1) { push(@buts, [ undef, $text{'udel_del1'} ]); } push(@buts, [ "delhome", $text{'udel_del2'} ]); # check for files owned by other users @others = &backquote_command("find ".quotemeta($user->{'home'}). " ! -user $user->{'uid'} 2>/dev/null", 1); } else { # No home directory $msg = &text('udel_sure2',&html_escape($user->{'user'})); push(@buts, [ undef, $text{'udel_del1'} ]); } print &ui_confirmation_form("delete_user.cgi", $msg, [ [ "user", $user->{'user'} ], [ "confirmed", 1 ] ], \@buts, $access{'dothers'} == 1 ? &ui_checkbox("others", 1, $text{'udel_dothers'}, $config{'default_other'}) : "", (@others ? &text('udel_others', "<tt>".&html_escape($user->{'home'})."</tt>", scalar(@others))."<p>" : ""). ($user->{'user'} eq 'root' ? $text{'udel_root'} : ""), ); &ui_print_footer("", $text{'index_return'}); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 5.66 KB | 0644 |
|
acl_security.pl | File | 13.74 KB | 0755 |
|
aix-lib.pl | File | 1.17 KB | 0755 |
|
backup_config.pl | File | 749 B | 0755 |
|
batch_exec.cgi | File | 17.21 KB | 0755 |
|
batch_form.cgi | File | 2.42 KB | 0755 |
|
cgi_args.pl | File | 477 B | 0755 |
|
config-aix | File | 703 B | 0644 |
|
config-cobalt-linux | File | 710 B | 0644 |
|
config-coherent-linux | File | 657 B | 0644 |
|
config-corel-linux | File | 665 B | 0644 |
|
config-debian-linux | File | 665 B | 0644 |
|
config-freebsd | File | 684 B | 0644 |
|
config-generic-linux | File | 677 B | 0644 |
|
config-gentoo-linux | File | 637 B | 0644 |
|
config-hpux | File | 579 B | 0644 |
|
config-irix | File | 757 B | 0644 |
|
config-macos | File | 581 B | 0644 |
|
config-mandrake-linux | File | 662 B | 0644 |
|
config-msc-linux | File | 657 B | 0644 |
|
config-netbsd | File | 623 B | 0644 |
|
config-open-linux | File | 687 B | 0644 |
|
config-openSUSE-Linux-15.0-ALL | File | 715 B | 0644 |
|
config-openbsd | File | 636 B | 0644 |
|
config-openmamba-linux | File | 657 B | 0644 |
|
config-openserver | File | 841 B | 0644 |
|
config-osf1 | File | 579 B | 0644 |
|
config-pardus-linux | File | 665 B | 0644 |
|
config-redhat-linux-15.0-ALL | File | 659 B | 0644 |
|
config-redhat-linux-ALL-14.9 | File | 657 B | 0644 |
|
config-slackware-linux | File | 663 B | 0644 |
|
config-sol-linux | File | 657 B | 0644 |
|
config-solaris | File | 631 B | 0644 |
|
config-suse-linux | File | 677 B | 0644 |
|
config-suse-linux-9.0-ALL | File | 715 B | 0644 |
|
config-trustix-linux | File | 657 B | 0644 |
|
config-turbo-linux | File | 677 B | 0644 |
|
config-united-linux | File | 677 B | 0644 |
|
config-unixware | File | 595 B | 0644 |
|
config.info | File | 4.05 KB | 0644 |
|
config.info.bg | File | 7.87 KB | 0644 |
|
config.info.ca | File | 4.82 KB | 0644 |
|
config.info.cs | File | 4.21 KB | 0644 |
|
config.info.da | File | 3.7 KB | 0644 |
|
config.info.de | File | 4.65 KB | 0644 |
|
config.info.es | File | 4.34 KB | 0644 |
|
config.info.fa | File | 6.04 KB | 0644 |
|
config.info.fr | File | 2.77 KB | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.ja | File | 4.96 KB | 0644 |
|
config.info.nl | File | 4.61 KB | 0644 |
|
config.info.no | File | 4.12 KB | 0644 |
|
config.info.pl | File | 3.01 KB | 0644 |
|
config.info.pt_BR | File | 4.36 KB | 0644 |
|
config.info.ru | File | 4.61 KB | 0644 |
|
config.info.sv | File | 1.06 KB | 0644 |
|
config.info.tr | File | 3.69 KB | 0644 |
|
config.info.uk | File | 4.58 KB | 0644 |
|
config.info.zh | File | 961 B | 0644 |
|
config.info.zh_TW | File | 909 B | 0644 |
|
cpan_modules.pl | File | 256 B | 0755 |
|
defaultacl | File | 358 B | 0644 |
|
delete_group.cgi | File | 2.18 KB | 0755 |
|
delete_user.cgi | File | 4.67 KB | 0755 |
|
edit_group.cgi | File | 4.97 KB | 0755 |
|
edit_user.cgi | File | 18.46 KB | 0755 |
|
export_exec.cgi | File | 2.9 KB | 0755 |
|
export_form.cgi | File | 1.77 KB | 0755 |
|
freebsd-lib.pl | File | 1.74 KB | 0755 |
|
gbatch_exec.cgi | File | 8.1 KB | 0755 |
|
gbatch_form.cgi | File | 1.59 KB | 0755 |
|
gexport_exec.cgi | File | 1.73 KB | 0755 |
|
gexport_form.cgi | File | 1.26 KB | 0755 |
|
help.html | File | 6.79 KB | 0644 |
|
hpux-lib.pl | File | 1.02 KB | 0755 |
|
index.cgi | File | 7.38 KB | 0755 |
|
irix-lib.pl | File | 1.09 KB | 0755 |
|
linux-lib.pl | File | 4.75 KB | 0755 |
|
list_logins.cgi | File | 1.55 KB | 0755 |
|
list_who.cgi | File | 945 B | 0755 |
|
log_parser.pl | File | 1.68 KB | 0755 |
|
macos-lib.pl | File | 3.15 KB | 0755 |
|
mass_delete_group.cgi | File | 2.41 KB | 0755 |
|
mass_delete_user.cgi | File | 7.65 KB | 0755 |
|
md5-lib.pl | File | 7.58 KB | 0755 |
|
module.info | File | 544 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 155 B | 0644 |
|
module.info.ar | File | 173 B | 0644 |
|
module.info.ar.auto | File | 34 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 247 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 228 B | 0644 |
|
module.info.ca | File | 117 B | 0644 |
|
module.info.ca.auto | File | 27 B | 0644 |
|
module.info.cs | File | 30 B | 0644 |
|
module.info.cs.auto | File | 134 B | 0644 |
|
module.info.da | File | 27 B | 0644 |
|
module.info.da.auto | File | 116 B | 0644 |
|
module.info.de | File | 133 B | 0644 |
|
module.info.de.auto | File | 25 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 258 B | 0644 |
|
module.info.es | File | 26 B | 0644 |
|
module.info.es.auto | File | 136 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 175 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 220 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 156 B | 0644 |
|
module.info.fr | File | 32 B | 0644 |
|
module.info.fr.auto | File | 154 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 182 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 147 B | 0644 |
|
module.info.hu | File | 37 B | 0644 |
|
module.info.hu.auto | File | 156 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 129 B | 0644 |
|
module.info.ja | File | 39 B | 0644 |
|
module.info.ja.auto | File | 175 B | 0644 |
|
module.info.ko | File | 29 B | 0644 |
|
module.info.ko.auto | File | 142 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 166 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 167 B | 0644 |
|
module.info.ms | File | 124 B | 0644 |
|
module.info.ms.auto | File | 26 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 133 B | 0644 |
|
module.info.nl | File | 30 B | 0644 |
|
module.info.nl.auto | File | 123 B | 0644 |
|
module.info.no | File | 27 B | 0644 |
|
module.info.no.auto | File | 116 B | 0644 |
|
module.info.pl | File | 122 B | 0644 |
|
module.info.pl.auto | File | 31 B | 0644 |
|
module.info.pt | File | 30 B | 0644 |
|
module.info.pt.auto | File | 124 B | 0644 |
|
module.info.pt_BR | File | 30 B | 0644 |
|
module.info.pt_BR.auto | File | 130 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 167 B | 0644 |
|
module.info.ru | File | 49 B | 0644 |
|
module.info.ru.auto | File | 208 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 177 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 163 B | 0644 |
|
module.info.sv | File | 31 B | 0644 |
|
module.info.sv.auto | File | 128 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 260 B | 0644 |
|
module.info.tr | File | 31 B | 0644 |
|
module.info.tr.auto | File | 147 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 247 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 232 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 177 B | 0644 |
|
module.info.zh | File | 24 B | 0644 |
|
module.info.zh.auto | File | 103 B | 0644 |
|
module.info.zh_TW | File | 30 B | 0644 |
|
module.info.zh_TW.auto | File | 109 B | 0644 |
|
my_group_chooser.cgi | File | 6.9 KB | 0755 |
|
my_user_chooser.cgi | File | 6.56 KB | 0755 |
|
netbsd-lib.pl | File | 1.74 KB | 0755 |
|
openbsd-lib.pl | File | 1.74 KB | 0755 |
|
openserver-lib.pl | File | 1.18 KB | 0755 |
|
osf1-lib.pl | File | 1.01 KB | 0755 |
|
prefs.info | File | 134 B | 0644 |
|
rbac-mapping | File | 190 B | 0644 |
|
save_group.cgi | File | 4.86 KB | 0755 |
|
save_user.cgi | File | 20.39 KB | 0755 |
|
search_group.cgi | File | 991 B | 0755 |
|
search_user.cgi | File | 1.33 KB | 0755 |
|
solaris-lib.pl | File | 1.78 KB | 0755 |
|
unixware-lib.pl | File | 1.13 KB | 0755 |
|
user-lib.pl | File | 71.71 KB | 0755 |
|