my $input = new CGI;
+my %flagsrequired;
+$flagsrequired{parameters} = 'manage_additional_fields';
+
+my $tablename = $input->param('tablename');
+my $op = $input->param('op') // ( $tablename ? 'list' : 'list_tables' );
+
+if( $op ne 'list_tables' ){
+ $flagsrequired{acquisition} = 'order_manage' if $tablename eq 'aqbasket';
+ $flagsrequired{serials} = 'edit_subscription' if $tablename eq 'subscription';
+}
+
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{
template_name => "admin/additional-fields.tt",
query => $input,
type => "intranet",
authnotrequired => 0,
- flagsrequired => { parameters => 1 },
+ flagsrequired => \%flagsrequired,
debug => 1,
}
);
-my $tablename = $input->param('tablename');
-my $op = $input->param('op') // ( $tablename ? 'list' : 'list_tables' );
my $field_id = $input->param('field_id');
my @messages;
--- /dev/null
+$DBversion = 'XXX';
+if( CheckVersion( $DBversion ) ) {
+ $dbh->do( q{
+ INSERT IGNORE INTO permissions (module_bit,code,description)
+ VALUES
+ (3,'manage_additional_fields','Add, edit, or delete additional custom fields for baskets or subscriptions (also requires order_manage or edit_subscription permissions)')
+ });
+ $dbh->do( q{
+ INSERT INTO user_permissions (borrowernumber, module_bit, code)
+ SELECT borrowernumber, 3, 'manage_additional_fields' FROM borrowers WHERE borrowernumber IN (SELECT DISTINCT borrowernumber FROM user_permissions WHERE code = 'order_manage' OR code = 'edit_subscription');
+ });
+ $dbh->do( q{
+ INSERT INTO user_permissions (borrowernumber, module_bit, code)
+ SELECT borrowernumber, 3, 'manage_additional_fields' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM borrowers WHERE MOD(flags DIV POWER(2,11),2)=1 OR MOD(flags DIV POWER(2,15),2) =1);
+ });
+ SetVersion( $DBversion );
+ print "Upgrade to $DBversion done (Bug 15774 - Add permission for managing additional fields)\n";
+}
( 3, 'manage_audio_alerts', 'Manage audio alerts'),
( 3, 'manage_usage_stats', 'Manage usage statistics settings'),
( 3, 'manage_mana', 'Manage Mana KB content sharing'),
+ ( 3, 'manage_additional_fields', 'Add, edit, or delete additional custom fields for baskets or subscriptions (also requires order_manage or edit_subscription permissions)'),
( 4, 'edit_borrowers', 'Add, modify and view patron information'),
( 4, 'view_borrower_infos_from_any_libraries', 'View patron infos from any libraries'),
( 6, 'place_holds', 'Place holds for patrons'),
</ul>
[% END %]
- [% IF ( CAN_user_parameters_manage_search_targets || CAN_user_parameters_manage_didyoumean || CAN_user_parameters_manage_column_config || CAN_user_parameters_manage_audio_alerts || ( CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) || CAN_user_parameters_manage_usage_stats || CAN_user_parameters_manage_additional_fields_baskets || CAN_user_parameters_manage_additional_fields_subscriptions ) %]
+ [% IF ( CAN_user_parameters_manage_search_targets || CAN_user_parameters_manage_didyoumean || CAN_user_parameters_manage_column_config || CAN_user_parameters_manage_audio_alerts || ( CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) || CAN_user_parameters_manage_usage_stats || CAN_user_parameters_manage_additional_fields ) %]
<h5>Additional parameters</h5>
<ul>
<!-- <li><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></li> -->
[% IF ( CAN_user_parameters_manage_mana ) %]
<li><a href="/cgi-bin/koha/admin/share_content.pl">Share content with Mana KB</a></li>
[% END %]
- [% IF ( CAN_user_parameters_manage_additional_fields_baskets || CAN_user_parameters_manage_additional_fields_subscriptions ) %]
+ [% IF ( CAN_user_parameters_manage_additional_fields ) %]
<li><a href="/cgi-bin/koha/admin/additional-fields.pl">Additional fields</a></li>
[% END %]
</ul>
[%- CASE 'manage_didyoumean' -%]<span>Manage Did you mean? configuration</span>
[%- CASE 'manage_column_config' -%]<span>Manage column configuration</span>
[%- CASE 'manage_audio_alerts' -%]<span>Manage audio alerts</span>
+ [%- CASE 'manage_additional_fields' -%]<span>Manage additional fields for baskets or subscriptions (requires edit_subscription or order_manage permissions)</span>
[%- CASE 'manage_sms_providers' -%]<span>Manage SMS cellular providers</span>
[%- CASE 'manage_usage_stats' -%]<span>Manage usage statistics settings</span>
[%- CASE 'manage_mana' -%]<span>Manage Mana KB content sharing</span>
[% END %]
[% IF op == 'list_tables' %]
+ [% IF CAN_user_acquisitions_order_manage || CAN_user_serials_edit_subscription %]
<h3>Additional fields</h3>
<p>Select a table:</p>
[% BLOCK table_option %]
<li><a href="?tablename=[% value | uri %]">[% content | html %] (<tt>[% value | html %]</tt>)</a></li>
[% END %]
<ul>
- [% WRAPPER table_option value="aqbasket" %]Order baskets[% END %]
- [% WRAPPER table_option value="subscription" %]Subscriptions[% END %]
+ [% IF CAN_user_acquisition_order_manage %]
+ [% WRAPPER table_option value="aqbasket" %]Order baskets[% END %]
+ [% END %]
+ [% IF CAN_user_serials_edit_subscription %]
+ [% WRAPPER table_option value="subscription" %]Subscriptions[% END %]
+ [% END %]
</ul>
+ [% ELSE %]
+ Additional permissions in the acquisitions or serials modules are required for editing additional fields
+ [% END %]
[% ELSIF op == 'list' %]
<h3>Additional fields for '[% tablename | html %]'</h3>
[% IF fields %]
</dl>
[% END %]
- [% IF ( ( CAN_user_parameters_manage_search_targets || CAN_user_parameters_manage_didyoumean || CAN_user_parameters_manage_column_config || CAN_user_parameters_manage_audio_alerts || CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) || CAN_user_parameters_manage_usage_stats || CAN_user_parameters_manage_additional_fields_baskets || CAN_user_parameters_manage_additional_fields_subscriptions || CAN_user_parameters_manage_mana ) %]
+ [% IF ( ( CAN_user_parameters_manage_search_targets || CAN_user_parameters_manage_didyoumean || CAN_user_parameters_manage_column_config || CAN_user_parameters_manage_audio_alerts || CAN_user_parameters_manage_sms_providers && Koha.Preference('SMSSendDriver') == 'Email' ) || CAN_user_parameters_manage_usage_stats || CAN_user_parameters_manage_additional_fields || CAN_user_parameters_manage_mana ) %]
<h3>Additional parameters</h3>
<dl>
<!-- <dt><a href="/cgi-bin/koha/admin/printers.pl">Network Printers</a></dt>
<dt><a href="/cgi-bin/koha/admin/usage_statistics.pl">Share your usage statistics</a></dt>
<dd>Share with the Koha community the usage statistics of your Koha installation.</dd>
[% END %]
+<<<<<<< HEAD
[% IF ( CAN_user_parameters_manage_mana ) %]
<dt><a href="/cgi-bin/koha/admin/share_content.pl">Share content with Mana KB</a></dt>
<dd>Share content (subscriptions, reports) with the Koha community</dd>
[% END %]
[% IF ( CAN_user_parameters_manage_additional_fields_baskets || CAN_user_parameters_manage_additional_fields_subscriptions ) %]
+=======
+ [% IF ( CAN_user_parameters_manage_additional_fields ) %]
+>>>>>>> Bug 15774: Add permission for managing additional fields
<dt><a href="/cgi-bin/koha/admin/additional-fields.pl">Additional fields</a></dt>
<dd>Add additional fields to certain tables</dd>
[% END %]