From: Matthias Meusburger Date: Mon, 23 Nov 2009 13:44:51 +0000 (+0100) Subject: MT 2050, Follow-up, Fast Cataloging X-Git-Tag: v3.02.00-alpha~54^2~4 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=9f41fe64beb579dd6edd0a7ad81aee96e474a842;p=koha_gimpoz MT 2050, Follow-up, Fast Cataloging Adds granular permissions for cataloging Also adds a link from the circulation home to fast cataloging when fast cataloging is active --- diff --git a/acqui/fetch_sort_dropbox.pl b/acqui/fetch_sort_dropbox.pl index e052db85f8..fa405f9bd6 100755 --- a/acqui/fetch_sort_dropbox.pl +++ b/acqui/fetch_sort_dropbox.pl @@ -40,7 +40,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => 'edit_catalogue'}, debug => 0, } ); diff --git a/authorities/blinddetail-biblio-search.pl b/authorities/blinddetail-biblio-search.pl index b137f50e5b..c8896aa339 100755 --- a/authorities/blinddetail-biblio-search.pl +++ b/authorities/blinddetail-biblio-search.pl @@ -67,7 +67,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $query, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => 'edit_catalogue' }, } ); diff --git a/catalogue/suggest.pl b/catalogue/suggest.pl index 9463f85a0a..55001ed5f5 100755 --- a/catalogue/suggest.pl +++ b/catalogue/suggest.pl @@ -48,7 +48,7 @@ my ($template, $loggedinuser, $cookie) query => $query, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => 'edit_catalogue'}, debug => 1, }); $template->param("loop" => \@loop_suggests, diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl index d05464cc77..38289501ab 100755 --- a/cataloguing/addbiblio.pl +++ b/cataloguing/addbiblio.pl @@ -830,6 +830,8 @@ my $mode = $input->param('mode'); my $frameworkcode = $input->param('frameworkcode'); my $dbh = C4::Context->dbh; +my $userflags = ($frameworkcode eq 'FA') ? "fast_cataloging" : "edit_catalogue"; + $frameworkcode = &GetFrameworkCode($biblionumber) if ( $biblionumber and not($frameworkcode) ); @@ -840,7 +842,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => $userflags }, } ); diff --git a/cataloguing/addbooks.pl b/cataloguing/addbooks.pl index 8ee8868292..e9113918aa 100755 --- a/cataloguing/addbooks.pl +++ b/cataloguing/addbooks.pl @@ -49,7 +49,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => 'edit_catalogue' }, debug => 1, } ); diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl index d61892db73..dbcb077ae0 100755 --- a/cataloguing/additem.pl +++ b/cataloguing/additem.pl @@ -75,16 +75,27 @@ my $biblionumber = $input->param('biblionumber'); my $itemnumber = $input->param('itemnumber'); my $op = $input->param('op'); +my $frameworkcode = &GetFrameworkCode($biblionumber); + +# Defining which userflag is needing according to the framework currently used +my $userflags; +if (defined $input->param('frameworkcode')) { + $userflags = ($input->param('frameworkcode') eq 'FA') ? "fast_cataloging" : "edit_catalogue"; +} + +if (not defined $userflags) { + $userflags = ($frameworkcode eq 'FA') ? "fast_cataloging" : "edit_catalogue"; +} + my ($template, $loggedinuser, $cookie) = get_template_and_user({template_name => "cataloguing/additem.tmpl", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => $userflags}, debug => 1, }); -my $frameworkcode = &GetFrameworkCode($biblionumber); my $today_iso = C4::Dates->today('iso'); $template->param(today_iso => $today_iso); diff --git a/cataloguing/merge.pl b/cataloguing/merge.pl index 2aaddcd5ab..be84df5bb4 100755 --- a/cataloguing/merge.pl +++ b/cataloguing/merge.pl @@ -39,7 +39,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => 'edit_catalogue' }, } ); diff --git a/cataloguing/moveitem.pl b/cataloguing/moveitem.pl index 0186435cc1..1548b601d9 100755 --- a/cataloguing/moveitem.pl +++ b/cataloguing/moveitem.pl @@ -47,7 +47,7 @@ my ($template, $loggedinuser, $cookie) query => $query, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => 'edit_catalogue'}, debug => 1, }); diff --git a/cataloguing/value_builder/macles.pl b/cataloguing/value_builder/macles.pl index bd684c438e..738ae1e579 100755 --- a/cataloguing/value_builder/macles.pl +++ b/cataloguing/value_builder/macles.pl @@ -176,7 +176,7 @@ my ($input) = @_; query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $template->param(BIGLOOP=>\@BIGLOOP); diff --git a/cataloguing/value_builder/marc21_field_006.pl b/cataloguing/value_builder/marc21_field_006.pl index 506f74218e..ecdb9c6f30 100755 --- a/cataloguing/value_builder/marc21_field_006.pl +++ b/cataloguing/value_builder/marc21_field_006.pl @@ -75,7 +75,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/marc21_field_007.pl b/cataloguing/value_builder/marc21_field_007.pl index 9969f29496..a6b3c55400 100755 --- a/cataloguing/value_builder/marc21_field_007.pl +++ b/cataloguing/value_builder/marc21_field_007.pl @@ -76,7 +76,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = "ta" unless $result; diff --git a/cataloguing/value_builder/marc21_field_008.pl b/cataloguing/value_builder/marc21_field_008.pl index 7d4d2b891b..fcb284402a 100755 --- a/cataloguing/value_builder/marc21_field_008.pl +++ b/cataloguing/value_builder/marc21_field_008.pl @@ -88,7 +88,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/marc21_field_008_authorities.pl b/cataloguing/value_builder/marc21_field_008_authorities.pl index 1aae045808..3f45dbf5b6 100755 --- a/cataloguing/value_builder/marc21_field_008_authorities.pl +++ b/cataloguing/value_builder/marc21_field_008_authorities.pl @@ -84,7 +84,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = "$dateentered".'|| aca||aabn | a|a d' unless $result; diff --git a/cataloguing/value_builder/marc21_leader.pl b/cataloguing/value_builder/marc21_leader.pl index 2598be7bc9..d0b54ab00b 100755 --- a/cataloguing/value_builder/marc21_leader.pl +++ b/cataloguing/value_builder/marc21_leader.pl @@ -78,7 +78,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = " nam a22 7a 4500" unless $result; diff --git a/cataloguing/value_builder/marc21_leader_authorities.pl b/cataloguing/value_builder/marc21_leader_authorities.pl index 2ad0247abd..5dce0d1a43 100755 --- a/cataloguing/value_builder/marc21_leader_authorities.pl +++ b/cataloguing/value_builder/marc21_leader_authorities.pl @@ -78,7 +78,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = " nz a22 n 4500" unless $result; diff --git a/cataloguing/value_builder/marc21_leader_book.pl b/cataloguing/value_builder/marc21_leader_book.pl index 137d031051..0e74f87208 100755 --- a/cataloguing/value_builder/marc21_leader_book.pl +++ b/cataloguing/value_builder/marc21_leader_book.pl @@ -75,7 +75,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = " nam 7a " unless $result; diff --git a/cataloguing/value_builder/marc21_leader_computerfile.pl b/cataloguing/value_builder/marc21_leader_computerfile.pl index 9f3de1b55c..20e02bfec7 100755 --- a/cataloguing/value_builder/marc21_leader_computerfile.pl +++ b/cataloguing/value_builder/marc21_leader_computerfile.pl @@ -75,7 +75,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = " nmm 7a " unless $result; diff --git a/cataloguing/value_builder/marc21_leader_video.pl b/cataloguing/value_builder/marc21_leader_video.pl index 7e445aabcd..d787f197d9 100755 --- a/cataloguing/value_builder/marc21_leader_video.pl +++ b/cataloguing/value_builder/marc21_leader_video.pl @@ -75,7 +75,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $result = " ngm 7a " unless $result; diff --git a/cataloguing/value_builder/unimarc_field_010.pl b/cataloguing/value_builder/unimarc_field_010.pl index f4f4511b16..2e916316b3 100755 --- a/cataloguing/value_builder/unimarc_field_010.pl +++ b/cataloguing/value_builder/unimarc_field_010.pl @@ -82,7 +82,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); diff --git a/cataloguing/value_builder/unimarc_field_100.pl b/cataloguing/value_builder/unimarc_field_100.pl index 088cf21d73..e930d70177 100755 --- a/cataloguing/value_builder/unimarc_field_100.pl +++ b/cataloguing/value_builder/unimarc_field_100.pl @@ -77,7 +77,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_105.pl b/cataloguing/value_builder/unimarc_field_105.pl index e33e1280a7..c84277b3da 100755 --- a/cataloguing/value_builder/unimarc_field_105.pl +++ b/cataloguing/value_builder/unimarc_field_105.pl @@ -72,7 +72,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_106.pl b/cataloguing/value_builder/unimarc_field_106.pl index b7165cece0..bf2573bb70 100755 --- a/cataloguing/value_builder/unimarc_field_106.pl +++ b/cataloguing/value_builder/unimarc_field_106.pl @@ -70,7 +70,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_110.pl b/cataloguing/value_builder/unimarc_field_110.pl index 1ef4006552..26dc4a9502 100755 --- a/cataloguing/value_builder/unimarc_field_110.pl +++ b/cataloguing/value_builder/unimarc_field_110.pl @@ -70,7 +70,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_115a.pl b/cataloguing/value_builder/unimarc_field_115a.pl index 05b6912aa6..7fd96dc628 100755 --- a/cataloguing/value_builder/unimarc_field_115a.pl +++ b/cataloguing/value_builder/unimarc_field_115a.pl @@ -79,7 +79,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_115b.pl b/cataloguing/value_builder/unimarc_field_115b.pl index 77f07e510a..65502e0d31 100755 --- a/cataloguing/value_builder/unimarc_field_115b.pl +++ b/cataloguing/value_builder/unimarc_field_115b.pl @@ -73,7 +73,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_116.pl b/cataloguing/value_builder/unimarc_field_116.pl index d9f2e953d8..ade4d14bab 100755 --- a/cataloguing/value_builder/unimarc_field_116.pl +++ b/cataloguing/value_builder/unimarc_field_116.pl @@ -72,7 +72,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_117.pl b/cataloguing/value_builder/unimarc_field_117.pl index 917acff51f..dc34e82170 100755 --- a/cataloguing/value_builder/unimarc_field_117.pl +++ b/cataloguing/value_builder/unimarc_field_117.pl @@ -69,7 +69,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_120.pl b/cataloguing/value_builder/unimarc_field_120.pl index 28bcbcfbd3..9478d91ebd 100755 --- a/cataloguing/value_builder/unimarc_field_120.pl +++ b/cataloguing/value_builder/unimarc_field_120.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_121a.pl b/cataloguing/value_builder/unimarc_field_121a.pl index 934e29d902..0880e7c78a 100755 --- a/cataloguing/value_builder/unimarc_field_121a.pl +++ b/cataloguing/value_builder/unimarc_field_121a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_121b.pl b/cataloguing/value_builder/unimarc_field_121b.pl index 2fad82f5ef..4fdbb995a0 100755 --- a/cataloguing/value_builder/unimarc_field_121b.pl +++ b/cataloguing/value_builder/unimarc_field_121b.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_122.pl b/cataloguing/value_builder/unimarc_field_122.pl index ec60a9984e..5b7220de87 100755 --- a/cataloguing/value_builder/unimarc_field_122.pl +++ b/cataloguing/value_builder/unimarc_field_122.pl @@ -73,7 +73,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123a.pl b/cataloguing/value_builder/unimarc_field_123a.pl index 8554d0e3e5..afd9d9544d 100755 --- a/cataloguing/value_builder/unimarc_field_123a.pl +++ b/cataloguing/value_builder/unimarc_field_123a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123d.pl b/cataloguing/value_builder/unimarc_field_123d.pl index e9ecd4956f..e9caa86041 100755 --- a/cataloguing/value_builder/unimarc_field_123d.pl +++ b/cataloguing/value_builder/unimarc_field_123d.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123e.pl b/cataloguing/value_builder/unimarc_field_123e.pl index e9ecd4956f..e9caa86041 100755 --- a/cataloguing/value_builder/unimarc_field_123e.pl +++ b/cataloguing/value_builder/unimarc_field_123e.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123f.pl b/cataloguing/value_builder/unimarc_field_123f.pl index 67b61e682e..4aeed6e5a5 100755 --- a/cataloguing/value_builder/unimarc_field_123f.pl +++ b/cataloguing/value_builder/unimarc_field_123f.pl @@ -73,7 +73,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123g.pl b/cataloguing/value_builder/unimarc_field_123g.pl index e9ecd4956f..e9caa86041 100755 --- a/cataloguing/value_builder/unimarc_field_123g.pl +++ b/cataloguing/value_builder/unimarc_field_123g.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123i.pl b/cataloguing/value_builder/unimarc_field_123i.pl index cf56999fee..430363414e 100755 --- a/cataloguing/value_builder/unimarc_field_123i.pl +++ b/cataloguing/value_builder/unimarc_field_123i.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_123j.pl b/cataloguing/value_builder/unimarc_field_123j.pl index 4d61ef7911..175e60f5fe 100755 --- a/cataloguing/value_builder/unimarc_field_123j.pl +++ b/cataloguing/value_builder/unimarc_field_123j.pl @@ -76,7 +76,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_124.pl b/cataloguing/value_builder/unimarc_field_124.pl index c98f87a193..4a57b173f8 100755 --- a/cataloguing/value_builder/unimarc_field_124.pl +++ b/cataloguing/value_builder/unimarc_field_124.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,8); diff --git a/cataloguing/value_builder/unimarc_field_124a.pl b/cataloguing/value_builder/unimarc_field_124a.pl index afd61462ca..8c7d097850 100755 --- a/cataloguing/value_builder/unimarc_field_124a.pl +++ b/cataloguing/value_builder/unimarc_field_124a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_124b.pl b/cataloguing/value_builder/unimarc_field_124b.pl index b00ebf73ba..f2e16ed050 100755 --- a/cataloguing/value_builder/unimarc_field_124b.pl +++ b/cataloguing/value_builder/unimarc_field_124b.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_124c.pl b/cataloguing/value_builder/unimarc_field_124c.pl index 291ed1e338..387746bf12 100755 --- a/cataloguing/value_builder/unimarc_field_124c.pl +++ b/cataloguing/value_builder/unimarc_field_124c.pl @@ -73,7 +73,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_124d.pl b/cataloguing/value_builder/unimarc_field_124d.pl index 5191dd797b..c1837a306e 100755 --- a/cataloguing/value_builder/unimarc_field_124d.pl +++ b/cataloguing/value_builder/unimarc_field_124d.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_124e.pl b/cataloguing/value_builder/unimarc_field_124e.pl index c19999d50e..13a6d534b8 100755 --- a/cataloguing/value_builder/unimarc_field_124e.pl +++ b/cataloguing/value_builder/unimarc_field_124e.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_124f.pl b/cataloguing/value_builder/unimarc_field_124f.pl index 3a00ba06b4..79a9082d6d 100755 --- a/cataloguing/value_builder/unimarc_field_124f.pl +++ b/cataloguing/value_builder/unimarc_field_124f.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_124g.pl b/cataloguing/value_builder/unimarc_field_124g.pl index 146459d60b..9837f952ec 100755 --- a/cataloguing/value_builder/unimarc_field_124g.pl +++ b/cataloguing/value_builder/unimarc_field_124g.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_125.pl b/cataloguing/value_builder/unimarc_field_125.pl index c98f87a193..4a57b173f8 100755 --- a/cataloguing/value_builder/unimarc_field_125.pl +++ b/cataloguing/value_builder/unimarc_field_125.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,8); diff --git a/cataloguing/value_builder/unimarc_field_125a.pl b/cataloguing/value_builder/unimarc_field_125a.pl index 37e238d2aa..fec59fb479 100755 --- a/cataloguing/value_builder/unimarc_field_125a.pl +++ b/cataloguing/value_builder/unimarc_field_125a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_125b.pl b/cataloguing/value_builder/unimarc_field_125b.pl index d95eea5627..5566e6ff71 100755 --- a/cataloguing/value_builder/unimarc_field_125b.pl +++ b/cataloguing/value_builder/unimarc_field_125b.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_126.pl b/cataloguing/value_builder/unimarc_field_126.pl index c98f87a193..4a57b173f8 100755 --- a/cataloguing/value_builder/unimarc_field_126.pl +++ b/cataloguing/value_builder/unimarc_field_126.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,8); diff --git a/cataloguing/value_builder/unimarc_field_126a.pl b/cataloguing/value_builder/unimarc_field_126a.pl index a0c178cf0e..c7ca107c26 100755 --- a/cataloguing/value_builder/unimarc_field_126a.pl +++ b/cataloguing/value_builder/unimarc_field_126a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_126b.pl b/cataloguing/value_builder/unimarc_field_126b.pl index a3d444a1c5..55e1ce641d 100755 --- a/cataloguing/value_builder/unimarc_field_126b.pl +++ b/cataloguing/value_builder/unimarc_field_126b.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_127.pl b/cataloguing/value_builder/unimarc_field_127.pl index 18e27580e3..00b0e9635f 100755 --- a/cataloguing/value_builder/unimarc_field_127.pl +++ b/cataloguing/value_builder/unimarc_field_127.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_128a.pl b/cataloguing/value_builder/unimarc_field_128a.pl index c260e9fdce..47933a6e57 100755 --- a/cataloguing/value_builder/unimarc_field_128a.pl +++ b/cataloguing/value_builder/unimarc_field_128a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_128b.pl b/cataloguing/value_builder/unimarc_field_128b.pl index c0a6c1dc27..f1a836a3cb 100755 --- a/cataloguing/value_builder/unimarc_field_128b.pl +++ b/cataloguing/value_builder/unimarc_field_128b.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_128c.pl b/cataloguing/value_builder/unimarc_field_128c.pl index 3bda1b1cf4..4b67071d24 100755 --- a/cataloguing/value_builder/unimarc_field_128c.pl +++ b/cataloguing/value_builder/unimarc_field_128c.pl @@ -73,7 +73,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,2); diff --git a/cataloguing/value_builder/unimarc_field_130.pl b/cataloguing/value_builder/unimarc_field_130.pl index 6d8b47ea34..1c1566b3f0 100755 --- a/cataloguing/value_builder/unimarc_field_130.pl +++ b/cataloguing/value_builder/unimarc_field_130.pl @@ -73,7 +73,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_135a.pl b/cataloguing/value_builder/unimarc_field_135a.pl index cc94b6722f..1a8fabfdfe 100755 --- a/cataloguing/value_builder/unimarc_field_135a.pl +++ b/cataloguing/value_builder/unimarc_field_135a.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_140.pl b/cataloguing/value_builder/unimarc_field_140.pl index 5de380c041..86194941bc 100755 --- a/cataloguing/value_builder/unimarc_field_140.pl +++ b/cataloguing/value_builder/unimarc_field_140.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_141.pl b/cataloguing/value_builder/unimarc_field_141.pl index be08047202..56a8caea6f 100755 --- a/cataloguing/value_builder/unimarc_field_141.pl +++ b/cataloguing/value_builder/unimarc_field_141.pl @@ -72,7 +72,7 @@ my ($template, $loggedinuser, $cookie) query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); my $f1 = substr($result,0,1); diff --git a/cataloguing/value_builder/unimarc_field_210c.pl b/cataloguing/value_builder/unimarc_field_210c.pl index 995debde39..66736588ac 100755 --- a/cataloguing/value_builder/unimarc_field_210c.pl +++ b/cataloguing/value_builder/unimarc_field_210c.pl @@ -140,7 +140,7 @@ my ($input) = @_; query => $query, type => 'intranet', authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); @@ -202,7 +202,7 @@ my ($input) = @_; query => $query, type => 'intranet', authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); diff --git a/cataloguing/value_builder/unimarc_field_225a.pl b/cataloguing/value_builder/unimarc_field_225a.pl index f81b5bed96..a02910e76c 100755 --- a/cataloguing/value_builder/unimarc_field_225a.pl +++ b/cataloguing/value_builder/unimarc_field_225a.pl @@ -116,7 +116,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_4XX.pl b/cataloguing/value_builder/unimarc_field_4XX.pl index 195fb5ce78..58a82bf9d2 100755 --- a/cataloguing/value_builder/unimarc_field_4XX.pl +++ b/cataloguing/value_builder/unimarc_field_4XX.pl @@ -95,7 +95,7 @@ sub plugin { query => $query, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/cataloguing/value_builder/unimarc_field_686a.pl b/cataloguing/value_builder/unimarc_field_686a.pl index 8d04df929e..ac41c9b8e3 100644 --- a/cataloguing/value_builder/unimarc_field_686a.pl +++ b/cataloguing/value_builder/unimarc_field_686a.pl @@ -79,7 +79,7 @@ my ($input) = @_; query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $template->param(index => $index, diff --git a/cataloguing/value_builder/unimarc_field_700-4.pl b/cataloguing/value_builder/unimarc_field_700-4.pl index a2f3f5116b..ae8772a975 100755 --- a/cataloguing/value_builder/unimarc_field_700-4.pl +++ b/cataloguing/value_builder/unimarc_field_700-4.pl @@ -87,7 +87,7 @@ my ($input) = @_; query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 1}, + flagsrequired => {editcatalogue => '*'}, debug => 1, }); $template->param(index => $index, diff --git a/cataloguing/value_builder/unimarc_leader.pl b/cataloguing/value_builder/unimarc_leader.pl index 260f560e62..a1a04491e4 100755 --- a/cataloguing/value_builder/unimarc_leader.pl +++ b/cataloguing/value_builder/unimarc_leader.pl @@ -77,7 +77,7 @@ sub plugin { query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { editcatalogue => 1 }, + flagsrequired => { editcatalogue => '*' }, debug => 1, } ); diff --git a/circ/circulation-home.pl b/circ/circulation-home.pl index 4ac52675d4..2ebd0d06dc 100755 --- a/circ/circulation-home.pl +++ b/circ/circulation-home.pl @@ -21,7 +21,7 @@ use CGI; use C4::Auth; use C4::Output; use C4::Context; - +use C4::Koha; my $query = new CGI; my ($template, $loggedinuser, $cookie) @@ -32,4 +32,9 @@ my ($template, $loggedinuser, $cookie) flagsrequired => {circulate => "circulate_remaining_permissions"}, }); +# Checking if there is a Fast Cataloging Framework +my $fa = getframeworkinfo('FA'); +$template->param({ fast_cataloging => 1 }) if (defined $fa); + + output_html_with_http_headers $query, $cookie, $template->output; diff --git a/installer/data/mysql/en/mandatory/userpermissions.sql b/installer/data/mysql/en/mandatory/userpermissions.sql index 3ae0953e28..a8c37d3384 100644 --- a/installer/data/mysql/en/mandatory/userpermissions.sql +++ b/installer/data/mysql/en/mandatory/userpermissions.sql @@ -1,6 +1,8 @@ INSERT INTO permissions (module_bit, code, description) VALUES ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'), ( 1, 'override_renewals', 'Override blocked renewals'), + ( 9, 'edit_catalogue', 'Edit catalogue'), + ( 9, 'fast_cataloging', 'Fast cataloging'), (11, 'vendors_manage', 'Manage vendors'), (11, 'contracts_manage', 'Manage contracts'), (11, 'period_manage', 'Manage periods'), diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql index 87c857f0c9..d1b826efe3 100644 --- a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql +++ b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql @@ -1,6 +1,8 @@ INSERT INTO permissions (module_bit, code, description) VALUES ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'), ( 1, 'override_renewals', 'Override blocked renewals'), + ( 9, 'edit_catalogue', 'Editer le catalogue'), + ( 9, 'fast_cataloging', 'Catalogage rapide'), (13, 'edit_news', 'Write news for the OPAC and staff interfaces'), (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'), (13, 'edit_calendar', 'Define days when the library is closed'), diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index a562269708..ea7f84a607 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -3291,6 +3291,18 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "3.01.00.128"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(qq{ + INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES + (9, 'edit_catalogue', 'Edit catalogue'), + (9, 'fast_cataloging', 'Fast cataloging') + }); + + print "Upgrade to $DBversion done (granular permissions for cataloging added)\n"; + SetVersion ($DBversion); +} + =item DropAllForeignKeys($table) Drop all foreign keys of the table $table diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc index a9da9f8899..b26bc57368 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc @@ -2,7 +2,7 @@