--- /dev/null
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: changepw.cgi,v 1.4.2.6 2005/03/07 21:28:03 eoberlander Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %cgiparams=();\r
+my $errormessage='';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$cgiparams{'ACTION_ADMIN'} = '';\r
+$cgiparams{'ACTION_DIAL'} = '';\r
+\r
+&Header::getcgihash(\%cgiparams);\r
+\r
+if ($cgiparams{'ACTION_ADMIN'} eq $Lang::tr{'save'})\r
+{\r
+ my $password1 = $cgiparams{'ADMIN_PASSWORD1'};\r
+ my $password2 = $cgiparams{'ADMIN_PASSWORD2'}; \r
+ if ($password1 eq $password2)\r
+ {\r
+ if ($password1 =~ m/\s|\"/) {\r
+ $errormessage = $Lang::tr{'password contains illegal characters'};\r
+ }\r
+ elsif (length($password1) >= 6)\r
+ {\r
+ system('/usr/bin/htpasswd', '-m', '-b', "${General::swroot}/auth/users", 'admin', "${password1}");\r
+ &General::log($Lang::tr{'admin user password has been changed'});\r
+ }\r
+ else {\r
+ $errormessage = $Lang::tr{'passwords must be at least 6 characters in length'}; }\r
+ }\r
+ else {\r
+ $errormessage = $Lang::tr{'passwords do not match'}; }\r
+}\r
+\r
+if ($cgiparams{'ACTION_DIAL'} eq $Lang::tr{'save'})\r
+{\r
+ my $password1 = $cgiparams{'DIAL_PASSWORD1'};\r
+ my $password2 = $cgiparams{'DIAL_PASSWORD2'}; \r
+ if ($password1 eq $password2)\r
+ {\r
+ if($password1 =~ m/\s|\"/) {\r
+ $errormessage = $Lang::tr{'password contains illegal characters'};\r
+ }\r
+ elsif (length($password1) >= 6)\r
+ {\r
+ system('/usr/bin/htpasswd', '-b', "${General::swroot}/auth/users", 'dial', "${password1}"); \r
+ &General::log($Lang::tr{'dial user password has been changed'});\r
+ }\r
+ else {\r
+ $errormessage = $Lang::tr{'passwords must be at least 6 characters in length'}; }\r
+ }\r
+ else {\r
+ $errormessage = $Lang::tr{'passwords do not match'}; }\r
+}\r
+\r
+&Header::openpage($Lang::tr{'change passwords'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+ &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+ print "<class name='base'>$errormessage\n";\r
+ print " </class>\n";\r
+ &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'administrator user password'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+ <td width='20%' class='base'>$Lang::tr{'username'} 'admin'</td>\r
+ <td width='15%' class='base' align='right'>$Lang::tr{'password'} </td>\r
+ <td width='15%'><input type='password' name='ADMIN_PASSWORD1' size='10' /></td>\r
+ <td width='15%' class='base' align='right'>$Lang::tr{'again'} </td>\r
+ <td width='15%'><input type='password' name='ADMIN_PASSWORD2' size='10' /></td>\r
+ <td width='20%' align='center'><input type='submit' name='ACTION_ADMIN' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+&Header::openbox('100%', 'left', $Lang::tr{'dial user password'});\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+ <td width='20%' class='base'>$Lang::tr{'username'} 'dial'</td>\r
+ <td width='15%' class='base' align='right'>$Lang::tr{'password'} </td>\r
+ <td width='15%'><input type='password' name='DIAL_PASSWORD1' size='10'/></td>\r
+ <td width='15%' class='base' align='right'>$Lang::tr{'again'} </td>\r
+ <td width='15%'><input type='password' name='DIAL_PASSWORD2' size='10' /></td>\r
+ <td width='20%' align='center'><input type='submit' name='ACTION_DIAL' value='$Lang::tr{'save'}' /></td>\r
+</tr>\r
+</table>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r