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