Bug 15774: Add permission for managing additional fields

To test:
 1 - Have three borrowers, one with order_manage permission, one with
 edit_subscription permisson, andone with both
 2 - Apply patch, updatedatabase
 3 - Verify all three now have the manage_additional_fields permission
 4 - Visit the admin page with these users, they should all see the
 'Manage additional fields' link
 5 - Click the link
 6 - User with order_manage should see 'Order baskest'
 7 - User with edit_subscription should see 'Subscriptions'
 8 - User with both should see both
 9 - Remove the additional permissions from a user - they should see a
 note about needing additional permissions

Signed-off-by: Josef Moravec <josef.moravec@gmail.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Nick Clemens 2018-12-18 12:05:10 +00:00
parent fe8bc587f6
commit 9cfcd21f24
7 changed files with 49 additions and 8 deletions

View File

@ -26,19 +26,28 @@ use Koha::AdditionalFields;
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;

View File

@ -0,0 +1,18 @@
$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";
}

View File

@ -31,6 +31,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
( 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'),

View File

@ -110,7 +110,7 @@
</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> -->
@ -135,7 +135,7 @@
[% 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>

View File

@ -57,6 +57,7 @@
[%- 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>

View File

@ -64,15 +64,23 @@
[% 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 %]

View File

@ -174,7 +174,7 @@
</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>
@ -203,11 +203,15 @@
<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 %]