mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
Fixes to get password changes for sudo users working
This commit is contained in:
11
forgot.cgi
11
forgot.cgi
@@ -28,6 +28,7 @@ time() - $link{'time'} > 60*$timeout &&
|
||||
my ($wuser) = grep { $_->{'name'} eq $link{'user'} } &acl::list_users();
|
||||
$wuser || &error(&text('forgot_euser2',
|
||||
"<tt>".&html_escape($link{'user'})."</tt>"));
|
||||
my $username = $link{'uuser'} || $link{'user'};
|
||||
|
||||
&ui_print_header(undef, $text{'forgot_title'}, "", undef, undef, 1, 1);
|
||||
|
||||
@@ -87,11 +88,10 @@ if (defined($in{'newpass'})) {
|
||||
}
|
||||
elsif ($link{'uuser'} || $wuser->{'pass'} eq 'x') {
|
||||
# Update in Users and Groups
|
||||
my $unixname = $link{'uuser'} || $link{'user'};
|
||||
print &text('forgot_udoing',
|
||||
"<tt>".&html_escape($unixname)."</tt>"),"<br>\n";
|
||||
"<tt>".&html_escape($username)."</tt>"),"<br>\n";
|
||||
&foreign_require("useradmin");
|
||||
my ($user) = grep { $_->{'user'} eq $unixname }
|
||||
my ($user) = grep { $_->{'user'} eq $username }
|
||||
&useradmin::list_users();
|
||||
$user || &error($text{'forgot_eunix'});
|
||||
$user->{'pass'} eq $useradmin::config{'lock_string'} &&
|
||||
@@ -119,7 +119,8 @@ if (defined($in{'newpass'})) {
|
||||
print &text('forgot_retry', '/'),"<p>\n";
|
||||
|
||||
&webmin_log("forgot", "reset", undef,
|
||||
{ 'user' => $link{'uuser'} || $link{'user'},
|
||||
{ 'user' => $username,
|
||||
'unix' => $link{'uuser'} ? 1 : 0,
|
||||
'email' => $wuser->{'email'} }, "acl");
|
||||
|
||||
&unlink_file("$main::forgot_password_link_dir/$in{'id'}");
|
||||
@@ -132,7 +133,7 @@ else {
|
||||
print &ui_table_start(undef, undef, 2);
|
||||
print &ui_table_row(
|
||||
&text('forgot_newpass',
|
||||
"<tt>".&html_escape($link{'user'})."</tt>"),
|
||||
"<tt>".&html_escape($username)."</tt>"),
|
||||
&ui_password("newpass", undef, 30));
|
||||
print &ui_table_row(
|
||||
$text{'forgot_newpass2'},
|
||||
|
||||
@@ -24,7 +24,7 @@ if (!$wuser) {
|
||||
&useradmin::list_users();
|
||||
if ($uuser && &useradmin::can_user_sudo_root($uuser->{'user'}) == 1) {
|
||||
# Use the Webmin root user's email for recovery
|
||||
($wuser) = grep { $_->{'user'} eq 'root' } &acl::list_users();
|
||||
($wuser) = grep { $_->{'name'} eq 'root' } &acl::list_users();
|
||||
}
|
||||
}
|
||||
my $email = $wuser ? $wuser->{'email'} : undef;
|
||||
@@ -108,7 +108,8 @@ my $msg = &text('forgot_msg', $wuser->{'name'}, $url, $ENV{'REMOTE_HOST'},
|
||||
$baseurl);
|
||||
$msg =~ s/\\n/\n/g;
|
||||
$msg = join("\n", &mailboxes::wrap_lines($msg, 75))."\n";
|
||||
my $subject = &text('forgot_subject', $wuser->{'name'});
|
||||
my $username = $uuser ? $uuser->{'user'} : $wuser->{'name'};
|
||||
my $subject = &text('forgot_subject', $username);
|
||||
&mailboxes::send_text_mail(&mailboxes::get_from_address(),
|
||||
$email,
|
||||
undef,
|
||||
@@ -119,11 +120,12 @@ my $subject = &text('forgot_subject', $wuser->{'name'});
|
||||
print "<center>\n";
|
||||
print &text('forgot_sent',
|
||||
"<tt>".&html_escape(&obsfucate_email($email))."</tt>",
|
||||
"<tt>".&html_escape($wuser->{'name'})."</tt>"),"\n";
|
||||
"<tt>".&html_escape($username)."</tt>"),"\n";
|
||||
print "</center>\n";
|
||||
|
||||
&webmin_log("forgot", "send", undef,
|
||||
{ 'user' => $wuser->{'name'},
|
||||
{ 'user' => $username,
|
||||
'unix' => $uuser ? 1 : 0,
|
||||
'email' => $email }, "acl");
|
||||
&ui_print_footer();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user