]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/changepw.cgi
git-svn-id: http://svn.ipfire.org/svn/ipfire/IPFire/source@16 ea5c0bd1-69bd-2848...
[ipfire-2.x.git] / html / cgi-bin / changepw.cgi
diff --git a/html/cgi-bin/changepw.cgi b/html/cgi-bin/changepw.cgi
new file mode 100644 (file)
index 0000000..b8d5c5a
--- /dev/null
@@ -0,0 +1,123 @@
+#!/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 "&nbsp;</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'}&nbsp;'admin'</td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'password'}&nbsp;</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'}&nbsp;'dial'</td>\r
+       <td width='15%' class='base' align='right'>$Lang::tr{'password'}&nbsp;</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'}&nbsp;</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