Fixes to get password changes for sudo users working

This commit is contained in:
Jamie Cameron
2025-05-04 11:40:58 -07:00
parent c5b0e4c7ff
commit 3ba8f4a6fe
2 changed files with 12 additions and 9 deletions

View File

@@ -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'},

View File

@@ -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();