Bug 34313: Add patron information in pass validation response
This patch makes the password validation response return the following
patron attributes to the API consumer:
* cardnumber
* userid
This will give hints on what was used to validate in the fallback
bahvior the endpoint has.
To test:
1. Apply the unit tests patch
2. Run:
$ ktd --shell
k$ prove t/db_dependent/api/v1/password_validation.t
=> FAIL: The endpoint doesn't return this valuable data
3. Apply this patch
4. Repeat 2
=> SUCESS: Tests pass! We got the cardnumber and the userid!
5. Sign off :-D
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 749783debf
)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
edda7a23cb
commit
06f09de19e
2 changed files with 26 additions and 5 deletions
|
@ -71,7 +71,7 @@ sub validate {
|
|||
my $password = $body->{password} // "";
|
||||
|
||||
return try {
|
||||
my ( $status, $cardnumber, $userid ) = C4::Auth::checkpw( $identifier, $password );
|
||||
my ( $status, $THE_cardnumber, $THE_userid ) = C4::Auth::checkpw( $identifier, $password );
|
||||
unless ($status) {
|
||||
return $c->render(
|
||||
status => 400,
|
||||
|
@ -79,9 +79,17 @@ sub validate {
|
|||
);
|
||||
}
|
||||
|
||||
return $c->render( status => 204, openapi => '' );
|
||||
}
|
||||
catch {
|
||||
my $patron = Koha::Patrons->find( { cardnumber => $THE_cardnumber } );
|
||||
|
||||
return $c->render(
|
||||
status => 201,
|
||||
openapi => {
|
||||
cardnumber => $patron->cardnumber,
|
||||
patron_id => $patron->id,
|
||||
userid => $patron->userid,
|
||||
}
|
||||
);
|
||||
} catch {
|
||||
if ( blessed $_ and $_->isa('Koha::Exceptions::Password') ) {
|
||||
return $c->render(
|
||||
status => 400,
|
||||
|
|
|
@ -1095,8 +1095,21 @@
|
|||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"204":
|
||||
"201":
|
||||
description: Validation successful
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
cardnumber:
|
||||
type: string
|
||||
description: cardnumber for the validated patron
|
||||
patron_id:
|
||||
type: integer
|
||||
description: Internal patron identifier
|
||||
userid:
|
||||
type: string
|
||||
description: userid for the validated patron
|
||||
additionalProperties: false
|
||||
"400":
|
||||
description: Bad request
|
||||
schema:
|
||||
|
|
Loading…
Reference in a new issue