+my $framework = &GetFrameworkCode( $biblionumber );
+my $record_processor = Koha::RecordProcessor->new({
+ filters => 'ViewPolicy',
+ options => {
+ interface => 'opac',
+ frameworkcode => $framework
+ }
+});
+$record_processor->process($record);
+
+# redirect if opacsuppression is enabled and biblio is suppressed
+if (C4::Context->preference('OpacSuppression')) {
+ # FIXME hardcoded; the suppression flag ought to be materialized
+ # as a column on biblio or the like
+ my $opacsuppressionfield = '942';
+ my $opacsuppressionfieldvalue = $record->field($opacsuppressionfield);
+ # redirect to opac-blocked info page or 404?
+ my $opacsuppressionredirect;
+ if ( C4::Context->preference("OpacSuppressionRedirect") ) {
+ $opacsuppressionredirect = "/cgi-bin/koha/opac-blocked.pl";
+ } else {
+ $opacsuppressionredirect = "/cgi-bin/koha/errors/404.pl";
+ }
+ if ( $opacsuppressionfieldvalue &&
+ $opacsuppressionfieldvalue->subfield("n") &&
+ $opacsuppressionfieldvalue->subfield("n") == 1) {
+ # if OPAC suppression by IP address
+ if (C4::Context->preference('OpacSuppressionByIPRange')) {
+ my $IPAddress = $ENV{'REMOTE_ADDR'};
+ my $IPRange = C4::Context->preference('OpacSuppressionByIPRange');
+ if ($IPAddress !~ /^$IPRange/) {
+ print $query->redirect($opacsuppressionredirect);
+ exit;
+ }
+ } else {
+ print $query->redirect($opacsuppressionredirect);
+ exit;
+ }
+ }
+}
+