# password_form.cgi
# Display the form that allows users to change their passwords at login time
+BEGIN { push(@INC, ".."); };
+use WebminCore;
+
+$pragma_no_cache = 1;
$ENV{'MINISERV_INTERNAL'} || die "Can only be called by miniserv.pl";
-require './web-lib.pl';
&init_config();
&ReadParse();
&header(undef, undef, undef, undef, 1, 1);
print "<center>\n";
-print "<h3>$text{'password_expired'}</h3><p>\n";
-
+if ($in{'expired'} == 2) {
+ print &ui_subheading($text{'password_temp'});
+ }
+else {
+ print &ui_subheading($text{'password_expired'});
+ }
+
+# Start of the form
print "$text{'password_prefix'}\n";
-print "<form action=$gconfig{'webprefix'}/password_change.cgi method=post>\n";
-print "<input type=hidden name=user value='",&html_escape($in{'user'}),"'>\n";
-print "<input type=hidden name=pam value='",&html_escape($in{'pam'}),"'>\n";
-
-print "<table border width=40%>\n";
-print "<tr $tb> <td><b>$text{'password_header'}</b></td> </tr>\n";
-print "<tr $cb> <td align=center><table cellpadding=3>\n";
-
-print "<tr> <td><b>$text{'password_user'}</b></td>\n";
-print "<td><tt>",&html_escape($in{'user'}),"</tt></td> </tr>\n";
-
-print "<tr> <td><b>$text{'password_old'}</b></td>\n";
-print "<td><input name=old size=20 type=password></td> </tr>\n";
-
-print "<tr> <td><b>$text{'password_new1'}</b></td>\n";
-print "<td><input name=new1 size=20 type=password></td> </tr>\n";
-print "<tr> <td><b>$text{'password_new2'}</b></td>\n";
-print "<td><input name=new2 size=20 type=password></td> </tr>\n";
-
-print "<tr> <td colspan=2 align=center><input type=submit ",
- "value='$text{'password_ok'}'>\n";
-print "<input type=reset value='$text{'password_clear'}'><br>\n";
-print "</td> </tr>\n";
-print "</table></td></tr></table><p>\n";
-print "<hr>\n";
-print "</form></center>\n";
+print &ui_form_start("$gconfig{'webprefix'}/password_change.cgi", "post");
+print &ui_hidden("user", $in{'user'});
+print &ui_hidden("pam", $in{'pam'});
+print &ui_hidden("expired", $in{'expired'});
+print &ui_table_start($text{'password_header'}, undef, 2);
+
+# Current username
+print &ui_table_row($text{'password_user'},
+ &html_escape($in{'user'}));
+
+# Old password
+print &ui_table_row($text{'password_old'},
+ &ui_password("old", undef, 20));
+
+# New password, twice
+print &ui_table_row($text{'password_new1'},
+ &ui_password("new1", undef, 20));
+print &ui_table_row($text{'password_new2'},
+ &ui_password("new2", undef, 20));
+
+# End of form
+print &ui_table_end();
+print &ui_form_end([ [ undef, $text{'password_ok'} ] ]);
+print "</center>\n";
print "$text{'password_postfix'}\n";
+
&footer();