Server IP : 195.201.23.43 / Your IP : 3.147.84.210 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl # Delete serveral users in a domain, after asking for confirmation require './virtual-server-lib.pl'; &ReadParse(); &error_setup($text{'users_derr'}); $d = &get_domain($in{'dom'}); &can_edit_domain($d) || &error($text{'users_ecannot'}); &can_edit_users() || &error($text{'users_ecannot'}); @del = split(/\0/, $in{'d'}); @del || &error($text{'users_ednone'}); if ($in{'confirm'}) { &obtain_lock_unix($d); &obtain_lock_mail($d); } @users = &list_domain_users($d, 0, 0, 0, 0, 1); # Get the users foreach $du (@del) { ($unix, $name) = split(/\//, $du, 2); ($user) = grep { $_->{'user'} eq $name && $_->{'unix'} == $unix } @users; if ($user) { push(@dusers, $user); &error($text{'users_edunix'}) if ($user->{'domainowner'}); } } if ($in{'confirm'}) { # Do it! foreach $user (@dusers) { # Delete mail file if (!$user->{'nomailfile'}) { &delete_mail_file($user); } # Delete simple autoreply file if (defined(&get_simple_alias)) { $simple = &get_simple_alias($d, $user); &delete_simple_autoreply($d, $simple) if ($simple); } # Delete SSH public key &delete_domain_user_ssh_pubkey($d, $user); # Delete the user, his virtusers and aliases &delete_user($user, $d); # Remove home directory if (!$user->{'nocreatehome'} && $user->{'home'}) { &delete_user_home($user, $d); } # Delete in plugins foreach $f (&list_mail_plugins()) { &plugin_call($f, "mailbox_delete", $user, $d); } # Delete in other modules if ($config{'other_users'}) { &foreign_call($usermodule, "other_modules", "useradmin_delete_user", $user); } } &run_post_actions(); &release_lock_unix($d); &release_lock_mail($d); &webmin_log("delete", "users", scalar(@dusers), { 'dom' => $d->{'dom'} }); &redirect("list_users.cgi?dom=$in{'dom'}"); } else { # Ask first &ui_print_header(&domain_in($d), $text{'users_dtitle'}, ""); print &ui_form_start("delete_users.cgi"); print &ui_hidden("dom", $in{'dom'}),"\n"; foreach $du (@del) { print &ui_hidden("d", $du),"\n"; } # Sum up home directories, and check for clashes @hclash = ( ); foreach $user (@dusers) { if (!$user->{'nomailfile'} && !&mail_under_home()) { local ($mailsz) = &mail_file_size($user); $total += $mailsz; } if (!$user->{'nocreatehome'} && $user->{'home'}) { local $homesz = &disk_usage_kb($user->{'home'}); $total += $homesz*1024; } if (!$user->{'nocreatehome'} && $user->{'home'} && !$user->{'webowner'}) { push(@hclash, grep { (&same_file($_->{'home'}, $user->{'home'}) || &is_under_directory($user->{'home'}, $_->{'home'})) && &indexof($_, @dusers) < 0 } @users); } } # Show the warning print "<center>\n"; print &text($total ? 'users_drusure' : 'users_drusure2', scalar(@dusers), &nice_size($total)),"<p>\n"; if (@hclash) { print "<b>",&text('user_hclash', join(" ", map { "<tt>$_->{'user'}</tt>" } @hclash)),"</b><p>\n"; } print &ui_form_end([ [ "confirm", $text{'users_dconfirm'} ] ]); print "<p></p>"; print &text('users_dlist', join(" ", map { "<tt>".&remove_userdom($_->{'user'}, $d)."</tt>" } @dusers)),"\n"; print "</center>\n"; &ui_print_footer("list_users.cgi?dom=$in{'dom'}", $text{'users_return'}); }Private