From 5ff4eb10a1af8e7bcce59637b702f4726cbfb1ed Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 2 May 2018 11:05:05 -0300 Subject: [PATCH] Bug 20568: (QA follow-up) Remove api-key management from OPAC Signed-off-by: Tomas Cohen Arazi --- .../atomicupdate/bug_20568_api_keys.perl | 7 -- installer/data/mysql/sysprefs.sql | 1 - .../bootstrap/en/includes/usermenu.inc | 10 -- .../bootstrap/en/modules/opac-apikeys.tt | 110 ---------------- opac/opac-apikeys.pl | 119 ------------------ 5 files changed, 247 deletions(-) delete mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-apikeys.tt delete mode 100755 opac/opac-apikeys.pl diff --git a/installer/data/mysql/atomicupdate/bug_20568_api_keys.perl b/installer/data/mysql/atomicupdate/bug_20568_api_keys.perl index 21e1884702..0267f35991 100644 --- a/installer/data/mysql/atomicupdate/bug_20568_api_keys.perl +++ b/installer/data/mysql/atomicupdate/bug_20568_api_keys.perl @@ -20,13 +20,6 @@ if(CheckVersion($DBversion)) { }); } - $dbh->do(q{ - INSERT IGNORE INTO `systempreferences` - (variable,value,explanation,options,type) - VALUES - ('AllowPatronsManageAPIKeysInOPAC', '0', 'If enabled, patrons can manage their own API keys in the OPAC', NULL, 'YesNo'); - }); - print "Upgrade to $DBversion done (Bug 20568 - Add API key management interface for patrons)\n"; SetVersion($DBversion); } diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 2b0aad6c14..34e5cc4744 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -30,7 +30,6 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('AllowNotForLoanOverride','0','','If ON, Koha will allow the librarian to loan a not for loan item.','YesNo'), ('AllowOfflineCirculation','0','','If on, enables HTML5 offline circulation functionality.','YesNo'), ('AllowPatronToSetCheckoutsVisibilityForGuarantor', '0', NULL, 'If enabled, the patron can set checkouts to be visible to his or her guarantor', 'YesNo'), -('AllowPatronsManageAPIKeysInOPAC', '0', NULL, 'If enabled, patrons can manage their own API keys in the OPAC', 'YesNo'), ('AllowPKIAuth','None','None|Common Name|emailAddress','Use the field from a client-side SSL certificate to look a user in the Koha database','Choice'), ('AllowPurchaseSuggestionBranchChoice','0','1','Allow user to choose branch when making a purchase suggestion','YesNo'), ('AllowRenewalIfOtherItemsAvailable','0',NULL,'If enabled, allow a patron to renew an item with unfilled holds if other available items can fill that hold.','YesNo'), diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc index 3024121344..da5e1ec8a8 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc @@ -124,16 +124,6 @@ your interlibrary loan requests [% END %] - - [% IF Koha.Preference('AllowPatronsManageAPIKeysInOPAC') %] - [% IF apikeysview %] -
  • - [% ELSE %] -
  • - [% END %] - your API keys - [% END %] -
  • [% END %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-apikeys.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-apikeys.tt deleted file mode 100644 index 7d958b74b7..0000000000 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-apikeys.tt +++ /dev/null @@ -1,110 +0,0 @@ -[% INCLUDE 'doc-head-open.inc' %] -[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Your API keys -[% INCLUDE 'doc-head-close.inc' %] -[% BLOCK cssinclude %][% END %] - -[% INCLUDE 'bodytag.inc' bodyid='opac-user' bodyclass='scrollto' %] -[% INCLUDE 'masthead.inc' %] - -
    - - -
    -
    -
    - -
    -
    -
    -

    Your API keys

    -

    - -

    -
    -
    - Generate new client id/secret pair - - - - - -
    -
    - -
    -
    - [% IF api_keys && api_keys.size > 0 %] - - - - - - - - - - - - [% FOREACH key IN api_keys %] - - - - - - - - [% END %] - -
    DescriptionClient IDSecretActiveActions
    [% key.description %][% key.client_id %][% key.secret %][% IF key.active %]Yes[% ELSE %]No[% END %] -
    - - - - -
    -
    - - - [% IF key.active %] - - - [% ELSE %] - - - [% END %] -
    -
    - [% ELSE %] -

    No keys defined for the current patron.

    - [% END %] -
    -
    -
    -
    -
    - -[% BLOCK jsinclude %] - -[% END %] -[% INCLUDE 'opac-bottom.inc' %] diff --git a/opac/opac-apikeys.pl b/opac/opac-apikeys.pl deleted file mode 100755 index 021c21b91b..0000000000 --- a/opac/opac-apikeys.pl +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env perl - -# This file is part of Koha. -# -# Copyright 2015 BibLibre -# -# Koha is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# Koha is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Koha; if not, see . - -use Modern::Perl; - -use CGI; - -use C4::Auth; -use C4::Output; - -use Koha::ApiKeys; -use Koha::Patrons; -use Koha::Token; - -my $cgi = new CGI; - -my ($template, $loggedinuser, $cookie) = get_template_and_user({ - template_name => 'opac-apikeys.tt', - query => $cgi, - type => 'opac', - authnotrequired => 0 -}); - -my $patron_id = $loggedinuser; -my $patron = Koha::Patrons->find( $patron_id ); - -if ( not defined $patron - or !C4::Context->preference('AllowPatronsManageAPIKeysInOPAC') ) -{ - # patron_id invalid -> exit - print $cgi->redirect("/cgi-bin/koha/errors/404.pl"); # escape early - exit; -} - -my $op = $cgi->param('op') // ''; - -if ( $op eq 'generate' or - $op eq 'delete' or - $op eq 'revoke' or - $op eq 'activate' ) { - - die "Wrong CSRF token" - unless Koha::Token->new->check_csrf({ - session_id => scalar $cgi->cookie('CGISESSID'), - token => scalar $cgi->param('csrf_token'), - }); -} - -if ($op) { - if ($op eq 'generate') { - my $description = $cgi->param('description') // ''; - my $apikey = Koha::ApiKey->new({ - patron_id => $patron_id, - description => $description - }); - $apikey->store; - print $cgi->redirect('/cgi-bin/koha/opac-apikeys.pl'); - exit; - } - - if ($op eq 'delete') { - my $key_id = $cgi->param('key'); - my $api_key = Koha::ApiKeys->find({ patron_id => $patron_id, client_id => $key_id }); - if ($api_key) { - $api_key->delete; - } - print $cgi->redirect('/cgi-bin/koha/opac-apikeys.pl'); - exit; - } - - if ($op eq 'revoke') { - my $key_id = $cgi->param('key'); - my $api_key = Koha::ApiKeys->find({ patron_id => $patron_id, client_id => $key_id }); - if ($api_key) { - $api_key->active(0); - $api_key->store; - } - print $cgi->redirect('/cgi-bin/koha/opac-apikeys.pl'); - exit; - } - - if ($op eq 'activate') { - my $key_id = $cgi->param('key'); - my $api_key = Koha::ApiKeys->find({ patron_id => $patron_id, client_id => $key_id }); - if ($api_key) { - $api_key->active(1); - $api_key->store; - } - print $cgi->redirect('/cgi-bin/koha/opac-apikeys.pl'); - exit; - } -} - -my @api_keys = Koha::ApiKeys->search({ patron_id => $patron_id }); - -$template->param( - api_keys => \@api_keys, - apikeysview => 1, - csrf_token => Koha::Token->new->generate_csrf({ session_id => scalar $cgi->cookie('CGISESSID') }), - patron => $patron -); - -output_html_with_http_headers $cgi, $cookie, $template->output; -- 2.17.0