@@ -, +, @@ --- cataloguing/addbiblio.pl | 2 +- cataloguing/editor.pl | 4 +++- .../bug20128_add_permission_for_advanced_editor.perl | 16 ++++++++++++++++ koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc | 1 + .../prog/en/modules/cataloguing/addbiblio.tt | 2 +- .../prog/en/modules/cataloguing/addbooks.tt | 2 +- 6 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug20128_add_permission_for_advanced_editor.perl --- a/cataloguing/addbiblio.pl +++ a/cataloguing/addbiblio.pl @@ -734,7 +734,7 @@ if ($frameworkcode eq 'FA'){ 'stickyduedate' => $fa_stickyduedate, 'duedatespec' => $fa_duedatespec, ); -} elsif ( $op ne "delete" && C4::Context->preference('EnableAdvancedCatalogingEditor') && $input->cookie( 'catalogue_editor_' . $loggedinuser ) eq 'advanced' && !$breedingid ) { +} elsif ( $op ne "delete" && C4::Context->preference('EnableAdvancedCatalogingEditor') && C4::Auth::haspermission($loggedinuser,{'editcatalogue'=>'advanced_editor'}) && $input->cookie( 'catalogue_editor_' . $loggedinuser ) eq 'advanced' && !$breedingid ) { # Only use the advanced editor for non-fast-cataloging. # breedingid is not handled because those would only come off a Z39.50 # search initiated by the basic editor. --- a/cataloguing/editor.pl +++ a/cataloguing/editor.pl @@ -40,7 +40,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => 'intranet', authnotrequired => 0, - flagsrequired => { editcatalogue => 'edit_catalogue' }, + flagsrequired => { + editcatalogue => ['edit_catalogue','advanced_editor'], + } } ); --- a/installer/data/mysql/atomicupdate/bug20128_add_permission_for_advanced_editor.perl +++ a/installer/data/mysql/atomicupdate/bug20128_add_permission_for_advanced_editor.perl @@ -0,0 +1,16 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{ + INSERT IGNORE permissions (module_bit, code, description) + VALUES + (9,'advanced_editor','Use the advanced cataloging editor') + }); + if( C4::Context->preference('EnableAdvancedCatalogingEditor') ){ + $dbh->do(q{ + INSERT INTO user_permissions (borrowernumber, module_bit, code) + SELECT borrowernumber, 9, 'advanced_editor' FROM borrowers WHERE borrowernumber IN (SELECT DISTINCT borrowernumber FROM user_permissions WHERE code = 'edit_catalogue'); + }); + } + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20128: Add permission for Advanced Cataloging Editor)\n"; +} --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -65,6 +65,7 @@ [%- CASE 'place_holds' -%]Place holds for patrons [%- CASE 'delete_all_items' -%]Delete all items at once [%- CASE 'edit_catalogue' -%]Edit catalog (Modify bibliographic/holdings data) + [%- CASE 'advanced_editor' -%]Use the advanced cataloging editor (requires edit_catalogue) [%- CASE 'edit_items' -%]Edit items [%- CASE 'edit_items_restricted' -%]Limit item modification to subfields defined in the SubfieldsToAllowForRestrictedEditing preference (please note that edit_item is still required) [%- CASE 'fast_cataloging' -%]Fast cataloging --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt @@ -488,7 +488,7 @@ function Changefwk() {