Bug 14391: Add granular permissions to the administration module
[koha.git] / installer / data / mysql / atomicupdate / bug14391_granular_admin_permissions.sql
1 INSERT INTO permissions (module_bit, code, description) VALUES
2    ( 3, 'manage_sysprefs', 'Manage global system preferences'),
3    ( 3, 'manage_libraries', 'Manage libraries and library groups'),
4    ( 3, 'manage_itemtypes', 'Manage item types'),
5    ( 3, 'manage_auth_values', 'Manage authorized values'),
6    ( 3, 'manage_patron_categories', 'Manage patron categories'),
7    ( 3, 'manage_patron_attributes', 'Manage extended patron attributes'),
8    ( 3, 'manage_transfers', 'Manage library transfer limits and transport cost matrix'),
9    ( 3, 'manage_item_circ_alerts', 'Manage item circulation alerts'),
10    ( 3, 'manage_cities', 'Manage cities and towns'),
11    ( 3, 'manage_marc_frameworks', 'Manage MARC bibliographic and authority frameworks'),
12    ( 3, 'manage_keywords2koha_mappings', 'Manage keywords to Koha mappings'),
13    ( 3, 'manage_classifications', 'Manage classification sources'),
14    ( 3, 'manage_matching_rules', 'Manage record matching rules'),
15    ( 3, 'manage_oai_sets', 'Manage OAI sets'),
16    ( 3, 'manage_item_search_fields', 'Manage item search fields'),
17    ( 3, 'manage_search_engine_config', 'Manage search engine configuration'),
18    ( 3, 'manage_search_targets', 'Manage Z39.50 and SRU server configuration'),
19    ( 3, 'manage_didyoumean', 'Manage Did you mean? configuration'),
20    ( 3, 'manage_column_config', 'Manage column configuration'),
21    ( 3, 'manage_sms_providers', 'Manage SMS cellular providers'),
22    ( 3, 'manage_audio_alerts', 'Manage audio alerts'),
23    ( 3, 'manage_usage_stats', 'Manage usage statistics settings');
24
25 /* User has parameters_remaining_permissions */
26 INSERT INTO user_permissions (borrowernumber, module_bit, code)
27     SELECT borrowernumber, 3, 'manage_sysprefs' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
28 INSERT INTO user_permissions (borrowernumber, module_bit, code)
29     SELECT borrowernumber, 3, 'manage_libraries' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
30 INSERT INTO user_permissions (borrowernumber, module_bit, code)
31     SELECT borrowernumber, 3, 'manage_itemtypes' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
32 INSERT INTO user_permissions (borrowernumber, module_bit, code)
33     SELECT borrowernumber, 3, 'manage_auth_values' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
34 INSERT INTO user_permissions (borrowernumber, module_bit, code)
35     SELECT borrowernumber, 3, 'manage_patron_categories' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
36 INSERT INTO user_permissions (borrowernumber, module_bit, code)
37     SELECT borrowernumber, 3, 'manage_patron_attributes' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
38 INSERT INTO user_permissions (borrowernumber, module_bit, code)
39     SELECT borrowernumber, 3, 'manage_transfers' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
40 INSERT INTO user_permissions (borrowernumber, module_bit, code)
41     SELECT borrowernumber, 3, 'manage_item_circ_alerts' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
42 INSERT INTO user_permissions (borrowernumber, module_bit, code)
43     SELECT borrowernumber, 3, 'manage_cities' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
44 INSERT INTO user_permissions (borrowernumber, module_bit, code)
45     SELECT borrowernumber, 3, 'manage_marc_frameworks' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
46 INSERT INTO user_permissions (borrowernumber, module_bit, code)
47     SELECT borrowernumber, 3, 'manage_keywords2koha_mappings' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
48 INSERT INTO user_permissions (borrowernumber, module_bit, code)
49     SELECT borrowernumber, 3, 'manage_classifications' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
50 INSERT INTO user_permissions (borrowernumber, module_bit, code)
51     SELECT borrowernumber, 3, 'manage_matching_rules' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
52 INSERT INTO user_permissions (borrowernumber, module_bit, code)
53     SELECT borrowernumber, 3, 'manage_oai_sets' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
54 INSERT INTO user_permissions (borrowernumber, module_bit, code)
55     SELECT borrowernumber, 3, 'manage_item_search_fields' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
56 INSERT INTO user_permissions (borrowernumber, module_bit, code)
57     SELECT borrowernumber, 3, 'manage_search_engine_config' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
58 INSERT INTO user_permissions (borrowernumber, module_bit, code)
59     SELECT borrowernumber, 3, 'manage_search_targets' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
60 INSERT INTO user_permissions (borrowernumber, module_bit, code)
61     SELECT borrowernumber, 3, 'manage_didyoumean' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
62 INSERT INTO user_permissions (borrowernumber, module_bit, code)
63     SELECT borrowernumber, 3, 'manage_column_config' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
64 INSERT INTO user_permissions (borrowernumber, module_bit, code)
65     SELECT borrowernumber, 3, 'manage_sms_providers' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
66 INSERT INTO user_permissions (borrowernumber, module_bit, code)
67     SELECT borrowernumber, 3, 'manage_audio_alerts' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
68 INSERT INTO user_permissions (borrowernumber, module_bit, code)
69     SELECT borrowernumber, 3, 'manage_usage_stats' FROM borrowers WHERE borrowernumber IN (SELECT borrowernumber FROM user_permissions WHERE code = 'parameters_remaining_permissions');
70
71 /* User has catalogue permission */
72 INSERT INTO user_permissions (borrowernumber, module_bit, code)
73     SELECT borrowernumber, 3, 'manage_item_search_fields'
74     FROM borrowers
75     WHERE borrowernumber IN
76         (SELECT borrowernumber FROM user_permissions WHERE code = 'catalogue');
77
78 /* Clean up now obsolete permission */
79 DELETE FROM user_permissions WHERE module_bit = 3 and code = 'parameters_remaining_permissions';
80 DELETE FROM permissions WHERE module_bit = 3 and code = 'parameters_remaining_permissions';
81
82 -- Bug 14391: Add granular permissions to the administration module