@@ -, +, @@ --- C4/VirtualShelves.pm | 8 ++++++++ installer/data/mysql/en/mandatory/userflags.sql | 4 +++- installer/data/mysql/en/mandatory/userpermissions.sql | 3 ++- installer/data/mysql/updatedatabase.pl | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) --- a/C4/VirtualShelves.pm +++ a/C4/VirtualShelves.pm @@ -21,8 +21,10 @@ use strict; use warnings; use Carp; +use C4::Auth; use C4::Context; use C4::Debug; +use C4::Members; use constant SHELVES_MASTHEAD_MAX => 10; #number under Lists button in masthead use constant SHELVES_COMBO_MAX => 10; #add to combo in search @@ -466,6 +468,12 @@ sub ShelfPossibleAction { return 0 unless defined($shelfnumber); + if ( $user > 0 ) { + my $borrower = C4::Members::GetMember( borrowernumber => $user ); + return 1 + if C4::Auth::haspermission( $borrower->{userid}, { shelves => 'manage_shelves' } ); + } + my $dbh = C4::Context->dbh; my $query = qq/ SELECT COALESCE(owner,0) AS owner, category, allow_add, allow_delete_own, allow_delete_other, COALESCE(sh.borrowernumber,0) AS borrowernumber --- a/installer/data/mysql/en/mandatory/userflags.sql +++ a/installer/data/mysql/en/mandatory/userflags.sql @@ -17,4 +17,6 @@ INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES (16,'reports','Allow access to the reports module',0), (17,'staffaccess','Allow staff members to modify permissions for other staff members',0), (18,'coursereserves','Course reserves',0), -(19, 'plugins', 'Koha plugins', '0'); +(19, 'plugins', 'Koha plugins', '0'), +(20, 'shelves', 'Virtual shelves', 0) +; --- a/installer/data/mysql/en/mandatory/userpermissions.sql +++ a/installer/data/mysql/en/mandatory/userpermissions.sql @@ -71,5 +71,6 @@ INSERT INTO permissions (module_bit, code, description) VALUES (19, 'manage', 'Manage plugins ( install / uninstall )'), (19, 'tool', 'Use tool plugins'), (19, 'report', 'Use report plugins'), - (19, 'configure', 'Configure plugins') + (19, 'configure', 'Configure plugins'), + (20, 'manage_shelves', 'Manage shelves') ; --- a/installer/data/mysql/updatedatabase.pl +++ a/installer/data/mysql/updatedatabase.pl @@ -9585,6 +9585,20 @@ if ( CheckVersion($DBversion) ) { SetVersion ($DBversion); } +$DBversion = "3.19.00.XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do(q| + INSERT INTO userflags (bit, flag, flagdesc, defaulton) VALUES + (20, 'shelves', 'Virtual shelves', 0) + |); + $dbh->do(q| + INSERT INTO permissions (module_bit, code, description) VALUES + (20, 'manage_shelves', 'Manage shelves') + |); + print "Upgrade to $DBversion done (Bug XXXXX: Add permission for shelves)\n"; + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) --