From ad9bc3e8c718e5ea5d31ce7ec7aff4ff8c506bbd Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 30 Aug 2021 11:08:30 -0300 Subject: [PATCH] Bug 28772: Update existing keys Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart --- .../mysql/atomicupdate/bug_28772_api_keys.pl | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 installer/data/mysql/atomicupdate/bug_28772_api_keys.pl diff --git a/installer/data/mysql/atomicupdate/bug_28772_api_keys.pl b/installer/data/mysql/atomicupdate/bug_28772_api_keys.pl new file mode 100755 index 0000000000..1e38409018 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_28772_api_keys.pl @@ -0,0 +1,32 @@ +use Modern::Perl; + +return { + bug_number => "28772", + description => "Store hashed API key secrets", + up => sub { + my ($args) = @_; + my ($dbh) = @$args{qw(dbh)}; + + use Koha::AuthUtils qw(hash_password); + + my $sth = $dbh->prepare(q{ + SELECT client_id, secret + FROM api_keys + }); + $sth->execute; + my $results = $sth->fetchall_arrayref({}); + + $sth = $dbh->prepare(q{ + UPDATE api_keys + SET + secret = ? + WHERE + client_id = ? + }); + + foreach my $api_key (@$results) { + my $digest = Koha::AuthUtils::hash_password( $api_key->{secret} ); + $sth->execute( $digest, $api_key->{client_id} ); + } + }, +} -- 2.39.5