summaryrefslogtreecommitdiff
path: root/fs_passwd
diff options
context:
space:
mode:
Diffstat (limited to 'fs_passwd')
-rwxr-xr-xfs_passwd/fs_passwd.cgi21
-rw-r--r--fs_passwd/fs_passwd.html3
2 files changed, 15 insertions, 9 deletions
diff --git a/fs_passwd/fs_passwd.cgi b/fs_passwd/fs_passwd.cgi
index 3f676fff3..38b70d0cf 100755
--- a/fs_passwd/fs_passwd.cgi
+++ b/fs_passwd/fs_passwd.cgi
@@ -2,12 +2,10 @@
use strict;
use Getopt::Std;
-use Socket;
-use IO::Handle;
+use FS::SelfService qw(passwd);
use CGI;
use CGI::Carp qw(fatalsToBrowser);
-my $fs_passwdd_socket = "/usr/local/freeside/fs_passwdd_socket";
my $freeside_uid = scalar(getpwnam('freeside'));
$ENV{'PATH'} ='/usr/local/bin:/usr/bin:/usr/ucb:/bin';
@@ -24,6 +22,9 @@ my $cgi = new CGI;
$cgi->param('username') =~ /^([^\n]{0,255}$)/ or die "Illegal username";
my $me = $1;
+$cgi->param('domain') =~ /^([^\n]{0,255}$)/ or die "Illegal domain";
+my $domain = $1;
+
$cgi->param('old_password') =~ /^([^\n]{0,255}$)/ or die "Illegal old_password";
my $old_password = $1;
@@ -33,12 +34,14 @@ my $new_password = $1;
die "New passwords don't match"
unless $new_password eq $cgi->param('new_password2');
-socket(SOCK, PF_UNIX, SOCK_STREAM, 0) or die "socket: $!";
-connect(SOCK, sockaddr_un($fs_passwdd_socket)) or die "connect: $!";
-print SOCK join("\n", $me, $old_password, $new_password, '', ''), "\n";
-SOCK->flush;
-my $error = <SOCK>;
-chomp $error;
+my $rv = passwd(
+ 'username' => $me,
+ 'domain' => $domain,
+ 'old_password' => $old_password,
+ 'new_password' => $new_password,
+);
+
+my $error = $rv->{error};
if ($error) {
die $error;
diff --git a/fs_passwd/fs_passwd.html b/fs_passwd/fs_passwd.html
index fadc4df8b..7e06ecff1 100644
--- a/fs_passwd/fs_passwd.html
+++ b/fs_passwd/fs_passwd.html
@@ -9,6 +9,9 @@
<tr><th align="right">Username</th>
<td><input type="text" name="username" size="18"></td>
</tr>
+ <tr><th align="right">Domain</th>
+ <td><input type="text" name="domain" size="18"></td>
+ </tr>
<tr><th align="right">Current password</th>
<td><input type="password" name="old_password" size="18"></td>
</tr>