From 6a3fcff7b5a538e4f745fbfc9c80164cf30af9b9 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Tue, 28 Feb 2023 17:53:22 +0000 Subject: [PATCH] Bug 32968: ERM granular permissions - Preparation Signed-off-by: Jonathan Field --- erm/erm.pl | 2 +- .../prog/en/includes/permissions.inc | 26 +++ .../intranet-tmpl/prog/en/modules/erm/erm.tt | 15 ++ .../prog/js/vue/components/ERM/Main.vue | 150 ++++++++++-------- 4 files changed, 123 insertions(+), 70 deletions(-) diff --git a/erm/erm.pl b/erm/erm.pl index df841c98bd..896d73e6c5 100755 --- a/erm/erm.pl +++ b/erm/erm.pl @@ -32,7 +32,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( template_name => "erm/erm.tt", query => $input, type => "intranet", - flagsrequired => { 'erm' => '1' }, + flagsrequired => { 'erm' => '*' }, } ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index e4c4cbe2a6..9207a91648 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -849,5 +849,31 @@ Manage authentication providers ([% name | html %]) + [%# erm %] + [%- CASE 'erm_admin' -%] + + Create, edit and delete all ERM related content + + ([% name | html %]) + [%- CASE 'erm_show' -%] + + Read-only access for all ERM related content + + ([% name | html %]) + [%- CASE 'erm_licensing' -%] + + Create, edit and delete licenses + + ([% name | html %]) + [%- CASE 'erm_agreement' -%] + + Create, edit and delete agreements. Grants read-only access to licenses and eHoldings + + ([% name | html %]) + [%- CASE 'erm_eholdings' -%] + + Create, edit and delete EHoldings local titles and local packages. Grants read-only access to agreements + + ([% name | html %]) [%- END -%] [%- END -%] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt index e356e85dd8..b6a0702f7e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt @@ -44,6 +44,21 @@ const logged_in_user = [% To.json(logged_in_user.unblessed) | $raw %]; + const permissions = { + licensing: { + write: [% CAN_user_erm_erm_licensing || CAN_user_erm_erm_admin ? 1 : 0 %], + read: [% CAN_user_erm_erm_licensing || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_agreement ? 1 : 0 %], + }, + agreement: { + write: [% CAN_user_erm_erm_agreement || CAN_user_erm_erm_admin ? 1 : 0 %], + read: [% CAN_user_erm_erm_agreement || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_eholdings ? 1 : 0 %], + }, + eholdings: { + write: [% CAN_user_erm_erm_eholdings || CAN_user_erm_erm_admin ? 1 : 0 %], + read: [% CAN_user_erm_erm_eholdings || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_agreement ? 1 : 0 %], + }, + } + [% Asset.js("js/vue/dist/erm.js") | $raw %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue index 0da4384934..51be637eef 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue @@ -16,7 +16,7 @@ + @@ -140,6 +151,7 @@ export default { ERMModule, loading, loaded, + permissions, } }, data() { -- 2.30.2