@@ -, +, @@ --- .../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 --- a/installer/data/mysql/atomicupdate/bug_28772_api_keys.pl +++ a/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} ); + } + }, +} --