Bugzilla – Attachment 13396 Details for
Bug 8435
new permissions on subscriptions "superserials"
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8435: If IndependantBranches is on, Serials can't be manage from others libraries
Bug-8435-If-IndependantBranches-is-on-Serials-cant.patch (text/plain), 25.78 KB, created by
Jonathan Druart
on 2012-11-12 13:20:32 UTC
(
hide
)
Description:
Bug 8435: If IndependantBranches is on, Serials can't be manage from others libraries
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2012-11-12 13:20:32 UTC
Size:
25.78 KB
patch
obsolete
>From 72fcdad2f389ffeefe95534c054081a7e6002d00 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Mon, 12 Nov 2012 14:15:42 +0100 >Subject: [PATCH] Bug 8435: If IndependantBranches is on, Serials can't be > manage from others libraries > >In the serial module, we want to hide serials from others libraries. >New permission 'superserials'. If a patron have this permission, he can >override this restriction. > >Test plan: >- Switch on the IndependantBranches syspref >- Add the permission 'superserials' for a patron and test you can > navigate and see all serials >- Remove this permission and test you cannot manage/view subscriptions > from others libraries >--- > C4/Auth.pm | 4 +- > C4/Serials.pm | 112 ++++++++------------ > .../data/mysql/de-DE/mandatory/userpermissions.sql | 1 + > .../data/mysql/en/mandatory/userpermissions.sql | 1 + > .../data/mysql/es-ES/mandatory/userpermissions.sql | 1 + > .../mysql/fr-FR/1-Obligatoire/userpermissions.sql | 1 + > .../data/mysql/it-IT/necessari/userpermissions.sql | 1 + > .../mysql/nb-NO/1-Obligatorisk/userpermissions.sql | 1 + > .../data/mysql/pl-PL/mandatory/userpermissions.sql | 1 + > installer/data/mysql/updatedatabase.pl | 7 ++ > .../prog/en/includes/serials-toolbar.inc | 6 +- > .../prog/en/modules/serials/serials-search.tt | 10 +- > serials/serials-collection.pl | 4 +- > serials/serials-edit.pl | 1 + > serials/serials-search.pl | 1 + > serials/subscription-add.pl | 3 +- > serials/subscription-detail.pl | 32 ++---- > 17 files changed, 84 insertions(+), 103 deletions(-) > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index 705eda0..cf73269 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -1514,7 +1514,6 @@ sub getuserflags { > $userflags->{$flag} = 0; > } > } >- > # get subpermissions and merge with top-level permissions > my $user_subperms = get_user_subpermissions($userid); > foreach my $module (keys %$user_subperms) { >@@ -1610,7 +1609,8 @@ sub haspermission { > my ($userid, $flagsrequired) = @_; > my $sth = C4::Context->dbh->prepare("SELECT flags FROM borrowers WHERE userid=?"); > $sth->execute($userid); >- my $flags = getuserflags($sth->fetchrow(), $userid); >+ my $row = $sth->fetchrow(); >+ my $flags = getuserflags($row, $userid); > if ( $userid eq C4::Context->config('user') ) { > # Super User Account from /etc/koha.conf > $flags->{'superlibrarian'} = 1; >diff --git a/C4/Serials.pm b/C4/Serials.pm >index cedbcff..e449e19 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -20,6 +20,7 @@ package C4::Serials; > > use strict; > use warnings; >+use C4::Context; > use C4::Dates qw(format_date format_date_in_iso); > use Date::Calc qw(:all); > use POSIX qw(strftime); >@@ -206,15 +207,7 @@ sub GetSerialInformation { > my ($serialid) = @_; > my $dbh = C4::Context->dbh; > my $query = qq| >- SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid |; >- if ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{'flags'} != 1 >- && C4::Context->userenv->{'branch'} ) { >- $query .= " >- , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit "; >- } >- $query .= qq| >+ SELECT serial.*, serial.notes as sernotes, serial.status as serstatus,subscription.*,subscription.subscriptionid as subsid > FROM serial LEFT JOIN subscription ON subscription.subscriptionid=serial.subscriptionid > WHERE serialid = ? > |; >@@ -253,6 +246,7 @@ sub GetSerialInformation { > $data->{ "status" . $data->{'serstatus'} } = 1; > $data->{'subscriptionexpired'} = HasSubscriptionExpired( $data->{'subscriptionid'} ) && $data->{'status'} == 1; > $data->{'abouttoexpire'} = abouttoexpire( $data->{'subscriptionid'} ); >+ $data->{cannotedit} = not can_edit_subscription( $data ); > return $data; > } > >@@ -311,15 +305,7 @@ sub GetSubscription { > subscriptionhistory.*, > aqbooksellers.name AS aqbooksellername, > biblio.title AS bibliotitle, >- subscription.biblionumber as bibnum); >- if ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{'flags'} != 1 >- && C4::Context->userenv->{'branch'} ) { >- $query .= " >- , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit "; >- } >- $query .= qq( >+ subscription.biblionumber as bibnum > FROM subscription > LEFT JOIN subscriptionhistory ON subscription.subscriptionid=subscriptionhistory.subscriptionid > LEFT JOIN aqbooksellers ON subscription.aqbooksellerid=aqbooksellers.id >@@ -327,16 +313,12 @@ sub GetSubscription { > WHERE subscription.subscriptionid = ? > ); > >- # if (C4::Context->preference('IndependantBranches') && >- # C4::Context->userenv && >- # C4::Context->userenv->{'flags'} != 1){ >- # # $debug and warn "flags: ".C4::Context->userenv->{'flags'}; >- # $query.=" AND subscription.branchcode IN ('".C4::Context->userenv->{'branch'}."',\"\")"; >- # } > $debug and warn "query : $query\nsubsid :$subscriptionid"; > my $sth = $dbh->prepare($query); > $sth->execute($subscriptionid); >- return $sth->fetchrow_hashref; >+ my $subscription = $sth->fetchrow_hashref; >+ $subscription->{cannotedit} = not can_edit_subscription( $subscription ); >+ return $subscription; > } > > =head2 GetFullSubscription >@@ -360,15 +342,7 @@ sub GetFullSubscription { > aqbooksellers.name as aqbooksellername, > biblio.title as bibliotitle, > subscription.branchcode AS branchcode, >- subscription.subscriptionid AS subscriptionid |; >- if ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{'flags'} != 1 >- && C4::Context->userenv->{'branch'} ) { >- $query .= " >- , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit "; >- } >- $query .= qq| >+ subscription.subscriptionid AS subscriptionid > FROM serial > LEFT JOIN subscription ON > (serial.subscriptionid=subscription.subscriptionid ) >@@ -382,7 +356,11 @@ sub GetFullSubscription { > $debug and warn "GetFullSubscription query: $query"; > my $sth = $dbh->prepare($query); > $sth->execute($subscriptionid); >- return $sth->fetchall_arrayref( {} ); >+ my $subscriptions = $sth->fetchall_arrayref( {} ); >+ for my $subscription ( @$subscriptions ) { >+ $subscription->{cannotedit} = not can_edit_subscription( $subscription ); >+ } >+ return $subscriptions; > } > > =head2 PrepareSerialsData >@@ -480,13 +458,6 @@ sub GetSubscriptionsFromBiblionumber { > $subs->{ "periodicity" . $subs->{periodicity} } = 1; > $subs->{ "numberpattern" . $subs->{numberpattern} } = 1; > $subs->{ "status" . $subs->{'status'} } = 1; >- $subs->{'cannotedit'} = >- ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{flags} % 2 != 1 >- && C4::Context->userenv->{branch} >- && $subs->{branchcode} >- && ( C4::Context->userenv->{branch} ne $subs->{branchcode} ) ); > > if ( $subs->{enddate} eq '0000-00-00' ) { > $subs->{enddate} = ''; >@@ -495,6 +466,7 @@ sub GetSubscriptionsFromBiblionumber { > } > $subs->{'abouttoexpire'} = abouttoexpire( $subs->{'subscriptionid'} ); > $subs->{'subscriptionexpired'} = HasSubscriptionExpired( $subs->{'subscriptionid'} ); >+ $subs->{cannotedit} = not can_edit_subscription( $subs ); > push @res, $subs; > } > return \@res; >@@ -520,16 +492,7 @@ sub GetFullSubscriptionsFromBiblionumber { > year(IF(serial.publisheddate="00-00-0000",serial.planneddate,serial.publisheddate)) as year, > biblio.title as bibliotitle, > subscription.branchcode AS branchcode, >- subscription.subscriptionid AS subscriptionid|; >- if ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{'flags'} != 1 >- && C4::Context->userenv->{'branch'} ) { >- $query .= " >- , ((subscription.branchcode <>\"" . C4::Context->userenv->{'branch'} . "\") and subscription.branchcode <>\"\" and subscription.branchcode IS NOT NULL) as cannotedit "; >- } >- >- $query .= qq| >+ subscription.subscriptionid AS subscriptionid > FROM serial > LEFT JOIN subscription ON > (serial.subscriptionid=subscription.subscriptionid) >@@ -542,7 +505,11 @@ sub GetFullSubscriptionsFromBiblionumber { > |; > my $sth = $dbh->prepare($query); > $sth->execute($biblionumber); >- return $sth->fetchall_arrayref( {} ); >+ my $subscriptions = $sth->fetchall_arrayref( {} ); >+ for my $subscription ( @$subscriptions ) { >+ $subscription->{cannotedit} = not can_edit_subscription( $subscription ); >+ } >+ return $subscriptions; > } > > =head2 GetSubscriptions >@@ -617,19 +584,11 @@ sub GetSubscriptions { > $debug and warn "GetSubscriptions query: $sql params : ", join( " ", @bind_params ); > $sth = $dbh->prepare($sql); > $sth->execute(@bind_params); >- my @results; >- >- while ( my $line = $sth->fetchrow_hashref ) { >- $line->{'cannotedit'} = >- ( C4::Context->preference('IndependantBranches') >- && C4::Context->userenv >- && C4::Context->userenv->{flags} % 2 != 1 >- && C4::Context->userenv->{branch} >- && $line->{branchcode} >- && ( C4::Context->userenv->{branch} ne $line->{branchcode} ) ); >- push @results, $line; >- } >- return @results; >+ my $subscriptions = $sth->fetchall_arrayref( {} ); >+ for my $subscription ( @$subscriptions ) { >+ $subscription->{cannotedit} = not can_edit_subscription( $subscription ); >+ } >+ return @$subscriptions; > } > > =head2 SearchSubscriptions >@@ -696,6 +655,10 @@ sub SearchSubscriptions { > my $results = $sth->fetchall_arrayref( {} ); > $sth->finish; > >+ for my $subscription ( @$results ) { >+ $subscription->{cannotedit} = not can_edit_subscription( $subscription ); >+ } >+ > return @$results; > } > >@@ -2465,6 +2428,23 @@ sub is_barcode_in_use { > return @{$occurences}; > } > >+sub can_edit_subscription { >+ my ( $subscription, $userid ) = @_; >+ my $flags = C4::Context->userenv->{flags}; >+ $userid ||= C4::Context->userenv->{'id'}; >+ my $independant_branches = C4::Context->preference('IndependantBranches'); >+ return 1 unless $independant_branches; >+ if( $flags % 2 == 1 >+ or C4::Auth::haspermission( $userid, {serials => 'superserials'}), >+ or not defined $subscription->{branchcode} >+ or $subscription->{branchcode} eq '' >+ or $subscription->{branchcode} eq C4::Context->userenv->{'branch'} >+ ) { >+ return 1; >+ } >+ return 0; >+} >+ > 1; > __END__ > >diff --git a/installer/data/mysql/de-DE/mandatory/userpermissions.sql b/installer/data/mysql/de-DE/mandatory/userpermissions.sql >index 7282cce..a5ef13d 100644 >--- a/installer/data/mysql/de-DE/mandatory/userpermissions.sql >+++ b/installer/data/mysql/de-DE/mandatory/userpermissions.sql >@@ -50,6 +50,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Zugang von Heften'), > (15, 'renew_subscription', 'Abonnements verlängern'), > (15, 'routing', 'Umlauflisten verwalten'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'SQL-Reports ausführen'), > (16, 'create_reports', 'SQL-Reports erstellen') > ; >diff --git a/installer/data/mysql/en/mandatory/userpermissions.sql b/installer/data/mysql/en/mandatory/userpermissions.sql >index 070e8f5..a3351d3 100644 >--- a/installer/data/mysql/en/mandatory/userpermissions.sql >+++ b/installer/data/mysql/en/mandatory/userpermissions.sql >@@ -50,6 +50,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Serials receiving'), > (15, 'renew_subscription', 'Renew a subscription'), > (15, 'routing', 'Routing'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Execute SQL reports'), > (16, 'create_reports', 'Create SQL Reports') > ; >diff --git a/installer/data/mysql/es-ES/mandatory/userpermissions.sql b/installer/data/mysql/es-ES/mandatory/userpermissions.sql >index 070e8f5..a3351d3 100644 >--- a/installer/data/mysql/es-ES/mandatory/userpermissions.sql >+++ b/installer/data/mysql/es-ES/mandatory/userpermissions.sql >@@ -50,6 +50,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Serials receiving'), > (15, 'renew_subscription', 'Renew a subscription'), > (15, 'routing', 'Routing'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Execute SQL reports'), > (16, 'create_reports', 'Create SQL Reports') > ; >diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql >index 4b8c66e..1c5ee59 100644 >--- a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql >+++ b/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql >@@ -50,6 +50,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Bulletiner les périodiques'), > (15, 'renew_subscription', 'Renouveler les abonnements'), > (15, 'routing', 'Mettre en circulation'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Lancer les rapports SQL'), > (16, 'create_reports', 'Créer les rapports SQL Reports') > >diff --git a/installer/data/mysql/it-IT/necessari/userpermissions.sql b/installer/data/mysql/it-IT/necessari/userpermissions.sql >index d0b5348..07b5c16 100644 >--- a/installer/data/mysql/it-IT/necessari/userpermissions.sql >+++ b/installer/data/mysql/it-IT/necessari/userpermissions.sql >@@ -52,6 +52,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Ricevi fascicoli'), > (15, 'renew_subscription', 'Rinnova un abbonamento'), > (15, 'routing', 'Crea/Manipola liste di distribuzione dei fascicoli ( routing list)'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Esegui reports SQL'), > (16, 'create_reports', 'Crea reports SQL') > ; >diff --git a/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql b/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql >index a00535f..55ee91d 100644 >--- a/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql >+++ b/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql >@@ -71,6 +71,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Heftemottak'), > (15, 'renew_subscription', 'Fornye abonnementer'), > (15, 'routing', 'Sirkulasjon'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Kjøre SQL-rapporter'), > (16, 'create_reports', 'Opprette SQL-rapporter') > ; >diff --git a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql b/installer/data/mysql/pl-PL/mandatory/userpermissions.sql >index 1165af1..a8e2ec4 100644 >--- a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql >+++ b/installer/data/mysql/pl-PL/mandatory/userpermissions.sql >@@ -51,6 +51,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES > (15, 'receive_serials', 'Serials receiving'), > (15, 'renew_subscription', 'Renew a subscription'), > (15, 'routing', 'Routing'), >+ (15, 'superserials', 'Manage subscriptions from any branch'), > (16, 'execute_reports', 'Execute SQL reports'), > (16, 'create_reports', 'Create SQL Reports') > ; >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f7e34eb..c611f59 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6049,6 +6049,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > } > > >+$DBversion = "3.09.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("INSERT INTO permissions (module_bit, code, description) VALUES(15, 'superserials', 'Manage subscriptions from any branch')"); >+ print "Upgrade to $DBversion done (Add superserials permission)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >index 00f76bc..7708cd2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >@@ -18,13 +18,13 @@ > [% IF ( subscriptionid ) %] > var editmenu = [ > [% IF ( CAN_user_serials_edit_subscription ) %] >- { text: _("Edit subscription"), [% IF ( cannotedit ) %]disabled: true, [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=modify&subscriptionid=[% subscriptionid %]" }, >+ { text: _("Edit subscription"), [% IF ( cannotedit ) %]id:'disabled', [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=modify&subscriptionid=[% subscriptionid %]" }, > [% END %] > [% IF ( CAN_user_serials_create_subscription ) %] >- { text: _("Edit as new (duplicate)"), [% IF ( cannotedit ) %]disabled: true, [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&subscriptionid=[% subscriptionid %]" }, >+ { text: _("Edit as new (duplicate)"), [% IF ( cannotedit ) %]id:'disabled', [% END %] url: "/cgi-bin/koha/serials/subscription-add.pl?op=dup&subscriptionid=[% subscriptionid %]" }, > [% END %] > [% IF ( CAN_user_serials_delete_subscription ) %] >- { text: _("Delete subscription"), [% IF ( cannotedit ) %]disabled: true, [% END %] onclick: {fn: confirm_deletion }} >+ { text: _("Delete subscription"), [% IF ( cannotedit ) %]id:'disabled', [% END %] onclick: {fn: confirm_deletion }} > [% END %] > ]; > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >index 98ef4d5..79e96bb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt >@@ -85,7 +85,7 @@ > </div> > [% END %] > [% IF ( done_searched ) %] >- [% IF ( subscriptions ) %] >+ [% IF ( subscriptions and size ) %] > <table id="srlt"> > <thead> > <tr> >@@ -117,6 +117,7 @@ > </tfoot> > <tbody> > [% FOREACH subscription IN subscriptions %] >+ [% UNLESS subscription.cannotedit %] > <tr> > <td> > [% IF ( subscription.issn ) %][% subscription.issn %] >@@ -153,14 +154,13 @@ > <td><a href="/cgi-bin/koha/serials/serials-collection.pl?subscriptionid=[% subscription.subscriptionid %]">Issue history</a> > </td> > <td> >- [% IF ( subscription.cannotedit ) %] >- >- [% ELSE %] >- [% IF ( CAN_user_serials_receive_serials ) %]<a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&serstatus=1,3,7">Serial receive</a>[% END %] >+ [% IF ( CAN_user_serials_receive_serials ) %] >+ <a href="/cgi-bin/koha/serials/serials-edit.pl?subscriptionid=[% subscription.subscriptionid %]&serstatus=1,3,7">Serial receive</a> > [% END %] > </td> > </tr> > [% END %] >+ [% END %] > </tbody> > </table> > [% ELSE %] >diff --git a/serials/serials-collection.pl b/serials/serials-collection.pl >index 4393546..aa004c4 100755 >--- a/serials/serials-collection.pl >+++ b/serials/serials-collection.pl >@@ -37,8 +37,7 @@ my $op = $query->param('op') || q{}; > my $nbissues=$query->param('nbissues'); > my $dbh = C4::Context->dbh; > >-my ($template, $loggedinuser, $cookie); >-($template, $loggedinuser, $cookie) >+my ($template, $loggedinuser, $cookie) > = get_template_and_user({template_name => "serials/serials-collection.tmpl", > query => $query, > type => "intranet", >@@ -103,6 +102,7 @@ if (@subscriptionid){ > my @subscriptioninformation=(); > foreach my $subscriptionid (@subscriptionid){ > my $subs= GetSubscription($subscriptionid); >+ > $subs->{opacnote} =~ s/\n/\<br\/\>/g; > $subs->{missinglist} =~ s/\n/\<br\/\>/g; > $subs->{recievedlist} =~ s/\n/\<br\/\>/g; >diff --git a/serials/serials-edit.pl b/serials/serials-edit.pl >index bb87c5f..29df491 100755 >--- a/serials/serials-edit.pl >+++ b/serials/serials-edit.pl >@@ -134,6 +134,7 @@ foreach my $serialid (@serialids) { > && !$processedserialid{$serialid} ) > { > my $serinfo = GetSerialInformation($serialid); #TODO duplicates work done by GetSerials2 above >+ > for my $d ( qw( publisheddate planneddate )){ > if ( $serinfo->{$d} =~m/^00/ ) { > $serinfo->{$d} = q{}; >diff --git a/serials/serials-search.pl b/serials/serials-search.pl >index ac5d0d3..548176c 100755 >--- a/serials/serials-search.pl >+++ b/serials/serials-search.pl >@@ -104,6 +104,7 @@ $template->param( > branches_loop => \@branches_loop, > done_searched => $searched, > routing => $routing, >+ size => scalar ( map {$_->{cannotedit} ? () : 1} @subscriptions ), > marcflavour => (uc(C4::Context->preference("marcflavour"))) > ); > >diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl >index a3306ea..1d8e885 100755 >--- a/serials/subscription-add.pl >+++ b/serials/subscription-add.pl >@@ -69,7 +69,8 @@ if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') { > > my $subscriptionid = $query->param('subscriptionid'); > $subs = GetSubscription($subscriptionid); >-## FIXME : Check rights to edit if mod. Could/Should display an error message. >+ >+ ## FIXME : Check rights to edit if mod. Could/Should display an error message. > if ($subs->{'cannotedit'} && $op eq 'modify'){ > carp "Attempt to modify subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; > print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); >diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl >index f3a50ac..2d82cc9 100755 >--- a/serials/subscription-detail.pl >+++ b/serials/subscription-detail.pl >@@ -32,31 +32,15 @@ my $query = new CGI; > my $op = $query->param('op') || q{}; > my $issueconfirmed = $query->param('issueconfirmed'); > my $dbh = C4::Context->dbh; >-my ($template, $loggedinuser, $cookie, $hemisphere); > my $subscriptionid = $query->param('subscriptionid'); >-my $subs = GetSubscription($subscriptionid); >- >-$subs->{enddate} = GetExpirationDate($subscriptionid); >- >-if ($op && $op eq 'del') { >- if ($subs->{'cannotedit'}){ >- carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; >- print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); >- } >- DelSubscription($subscriptionid); >- print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=serials-home.pl\"></html>"; >- exit; >-} > >-my ($totalissues,@serialslist) = GetSerials($subscriptionid); >-$totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue) > # the subscription must be deletable if there is NO issues for a reason or another (should not happend, but...) > > # Permission needed if it is a deletion (del) : delete_subscription > # Permission needed otherwise : * > my $permission = ($op eq "del") ? "delete_subscription" : "*"; > >-($template, $loggedinuser, $cookie) >+my ($template, $loggedinuser, $cookie) > = get_template_and_user({template_name => "serials/subscription-detail.tmpl", > query => $query, > type => "intranet", >@@ -65,7 +49,12 @@ my $permission = ($op eq "del") ? "delete_subscription" : "*"; > debug => 1, > }); > >-$$subs{enddate} ||= GetExpirationDate($subscriptionid); >+ >+my $subs = GetSubscription($subscriptionid); >+$subs->{enddate} ||= GetExpirationDate($subscriptionid); >+ >+my ($totalissues,@serialslist) = GetSerials($subscriptionid); >+$totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue) > > if ($op eq 'del') { > if ($$subs{'cannotedit'}){ >@@ -153,12 +142,7 @@ $template->param( > hasRouting => $hasRouting, > routing => C4::Context->preference("RoutingSerials"), > totalissues => $totalissues, >- hemisphere => $hemisphere, >- cannotedit =>(C4::Context->preference('IndependantBranches') && >- C4::Context->userenv && >- C4::Context->userenv->{flags} % 2 !=1 && >- C4::Context->userenv->{branch} && $subs->{branchcode} && >- (C4::Context->userenv->{branch} ne $subs->{branchcode})), >+ cannotedit => (not C4::Serials::can_edit_subscription( $subs )), > 'periodicity' . $subs->{periodicity} => 1, > 'arrival' . $subs->{dow} => 1, > 'numberpattern' . $subs->{numberpattern} => 1, >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8435
:
10821
|
11377
|
11411
|
11892
|
13396
|
15673
|
16404
|
16462
|
16740
|
16750
|
16751
|
16798
|
16799
|
16801
|
16802
|
16803
|
16943
|
16944
|
19260
|
19261
|
19266
|
19268
|
20536
|
21286
|
21287
|
21288
|
21289
|
22624
|
22625
|
22626
|
22627
|
22628