X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=fs_passwd%2Ffs_passwd.cgi;h=38b70d0cfa865e4d6e84a900e419777ddad6e8e2;hp=3f676fff395e8ec3709f036b4c1624c76249c10c;hb=7db53b9364a0f78620f156d7c511facf57343e3d;hpb=11f0302c9846fb763794f7383c3b1b65e6cb5d34 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 = ; -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;