From ee49738aa11395808d463473621eb2928a2206f2 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 | 139 +++++++++--------- 4 files changed, 113 insertions(+), 69 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 98c0a4294b..863a0de6de 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/erm/erm.tt @@ -39,6 +39,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 | $raw %], + read: [% CAN_user_erm_erm_licensing || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_agreement ? 1 : 0 | $raw %], + }, + agreement: { + write: [% CAN_user_erm_erm_agreement || CAN_user_erm_erm_admin ? 1 : 0 | $raw %], + read: [% CAN_user_erm_erm_agreement || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_eholdings ? 1 : 0 | $raw %], + }, + eholdings: { + write: [% CAN_user_erm_erm_eholdings || CAN_user_erm_erm_admin ? 1 : 0 | $raw %], + read: [% CAN_user_erm_erm_eholdings || CAN_user_erm_erm_admin || CAN_user_erm_erm_show || CAN_user_erm_erm_agreement ? 1 : 0 | $raw %], + }, + } + [% 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 dd1e27a2d6..c0351db5f5 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 @@ -19,7 +19,7 @@ + @@ -148,6 +150,7 @@ export default { setError, loading, loaded, + permissions, } }, data() { -- 2.30.2