Lines 50-70
sub changepassword {
Link Here
|
50 |
my $patron = Koha::Patrons->find($args->{borrowernumber}); |
50 |
my $patron = Koha::Patrons->find($args->{borrowernumber}); |
51 |
|
51 |
|
52 |
my $OpacPasswordChange = C4::Context->preference("OpacPasswordChange"); |
52 |
my $OpacPasswordChange = C4::Context->preference("OpacPasswordChange"); |
53 |
unless ( $user |
53 |
my $haspermission = haspermission($user->userid, {borrowers => 1}); |
54 |
&& ( ($OpacPasswordChange && $user->borrowernumber == $args->{borrowernumber}) |
54 |
unless ($OpacPasswordChange && $user->borrowernumber == $args->{borrowernumber} |
55 |
|| haspermission($user->userid, {borrowers => 1}) ) ) |
55 |
|| $haspermission) { |
56 |
{ |
|
|
57 |
return $c->$cb({ error => "OPAC password change is disabled" }, 403); |
56 |
return $c->$cb({ error => "OPAC password change is disabled" }, 403); |
58 |
} |
57 |
} |
59 |
return $c->$cb({ error => "Patron not found." }, 404) unless $patron; |
58 |
return $c->$cb({ error => "Patron not found." }, 404) unless $patron; |
60 |
|
59 |
|
61 |
my $pw = $args->{'body'}; |
60 |
my $pw = $args->{'body'}; |
62 |
my $dbh = C4::Context->dbh; |
61 |
my $dbh = C4::Context->dbh; |
63 |
unless (checkpw_internal($dbh, $user->userid, $pw->{'current_password'})) { |
62 |
unless ($haspermission |
|
|
63 |
|| checkpw_internal($dbh, $patron->userid, $pw->{'current_password'})) { |
64 |
return $c->$cb({ error => "Wrong current password." }, 400); |
64 |
return $c->$cb({ error => "Wrong current password." }, 400); |
65 |
} |
65 |
} |
66 |
|
66 |
|
67 |
my ($success, $errmsg) = $user->change_password_to($pw->{'new_password'}); |
67 |
my ($success, $errmsg) = $patron->change_password_to($pw->{'new_password'}); |
68 |
if ($errmsg) { |
68 |
if ($errmsg) { |
69 |
return $c->$cb({ error => $errmsg }, 400); |
69 |
return $c->$cb({ error => $errmsg }, 400); |
70 |
} |
70 |
} |
71 |
- |
|
|