5 use FS::SelfService qw(passwd);
7 use CGI::Carp qw(fatalsToBrowser);
9 my $freeside_uid = scalar(getpwnam('freeside'));
11 $ENV{'PATH'} ='/usr/local/bin:/usr/bin:/usr/ucb:/bin';
12 $ENV{'SHELL'} = '/bin/sh';
13 $ENV{'IFS'} = " \t\n";
16 $ENV{'BASH_ENV'} = '';
18 die "fs_passwd.cgi isn't running as freeside user\n" if $> != $freeside_uid;
22 $cgi->param('username') =~ /^([^\n]{0,255}$)/ or die "Illegal username";
25 $cgi->param('old_password') =~ /^([^\n]{0,255}$)/ or die "Illegal old_password";
26 my $old_password = $1;
28 $cgi->param('new_password') =~ /^([^\n]{0,255}$)/ or die "Illegal new_password";
29 my $new_password = $1;
31 die "New passwords don't match"
32 unless $new_password eq $cgi->param('new_password2');
36 'old_password' => $old_password,
37 'new_password' => $new_password,
40 my $error = $rv->{error};
45 print $cgi->header(), <<END;
48 <title>Password changed</title>
50 <body bgcolor="#e8e8e8">
51 <h3>Password changed</h3>
52 <br>Your password has been changed.