@@ -, +, @@ (13, 'upload_general_files', 'Upload any file'), (13, 'upload_manage', 'Manage uploaded files'); 14686 dbrev. DELETE FROM permissions WHERE code = 'upload_general_files' OR code = 'upload_manage' --- installer/data/mysql/atomicupdate/bug17663.perl | 26 +++++++++++++++++++++++++ installer/data/mysql/userpermissions.sql | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug17663.perl --- a/installer/data/mysql/atomicupdate/bug17663.perl +++ a/installer/data/mysql/atomicupdate/bug17663.perl @@ -0,0 +1,26 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do(q| +INSERT IGNORE INTO permissions (module_bit, code, description) VALUES + (13, 'upload_general_files', 'Upload any file'), + (13, 'upload_manage', 'Manage uploaded files'); + |); + +# Update user_permissions for current users (check count in uploaded_files) +# Note 9 == edit_catalogue and 13 == tools +# We do not insert if someone is superlibrarian, does not have edit_catalogue, +# or already has all tools + $dbh->do(q| +INSERT IGNORE INTO user_permissions (borrowernumber, module_bit, code) + SELECT borrowernumber, 13, 'upload_general_files' + FROM borrowers bo + WHERE flags<>1 AND flags & POW(2,13) = 0 AND + ( flags & POW(2,9) > 0 OR ( + SELECT COUNT(*) FROM user_permissions + WHERE borrowernumber=bo.borrowernumber AND module_bit=9 ) > 0 ) + AND ( SELECT COUNT(*) FROM uploaded_files ) > 0; + |); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 17663 - Forgotten userpermissions)\n"; +} --- a/installer/data/mysql/userpermissions.sql +++ a/installer/data/mysql/userpermissions.sql @@ -57,6 +57,8 @@ INSERT INTO permissions (module_bit, code, description) VALUES (13, 'records_batchmod', 'Perform batch modification of records (biblios or authorities)'), (13, 'marc_modification_templates', 'Manage marc modification templates'), (13, 'records_batchdel', 'Perform batch deletion of records (bibliographic or authority)'), + (13, 'upload_general_files', 'Upload any file'), + (13, 'upload_manage', 'Manage uploaded files'), (15, 'check_expiration', 'Check the expiration of a serial'), (15, 'claim_serials', 'Claim missing serials'), (15, 'create_subscription', 'Create a new subscription'), --