]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0547.data.perm_list_cleanup.sql
Clean up a few stock perm mistakes
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0547.data.perm_list_cleanup.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0547', :eg_version); -- dbwells
4
5 -- delete errant inserts from 0545 (group 4 is NOT the circulation admin group)
6 DELETE FROM permission.grp_perm_map WHERE grp = 4 AND perm IN (
7         SELECT id FROM permission.perm_list
8     WHERE code in ('ABORT_TRANSIT_ON_LOST', 'ABORT_TRANSIT_ON_MISSING')
9 );
10
11 -- now account for spelling errors (Admin != Administrator)
12 \qecho This might not insert much if you passed through 0542 on your way here,
13 \qecho but one group was missed there as well
14
15 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
16         SELECT
17                 pgt.id, perm.id, aout.depth, TRUE
18         FROM
19                 permission.grp_tree pgt,
20                 permission.perm_list perm,
21                 actor.org_unit_type aout
22         WHERE
23                 pgt.name = 'Cataloging Administrator' AND
24                 aout.name = 'Consortium' AND
25                 perm.code IN (
26                         'ADMIN_IMPORT_ITEM_ATTR_DEF',
27                         'ADMIN_MERGE_PROFILE',
28                         'CREATE_AUTHORITY_IMPORT_IMPORT_DEF',
29                         'CREATE_BIB_IMPORT_FIELD_DEF',
30                         'CREATE_BIB_PTYPE',
31                         'CREATE_BIB_SOURCE',
32                         'CREATE_IMPORT_ITEM_ATTR_DEF',
33                         'CREATE_IMPORT_TRASH_FIELD',
34                         'CREATE_MERGE_PROFILE',
35                         'CREATE_MONOGRAPH_PART',
36                         'CREATE_VOLUME_PREFIX',
37                         'CREATE_VOLUME_SUFFIX',
38                         'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
39                         'DELETE_BIB_PTYPE',
40                         'DELETE_BIB_SOURCE',
41                         'DELETE_IMPORT_ITEM_ATTR_DEF',
42                         'DELETE_IMPORT_TRASH_FIELD',
43                         'DELETE_MERGE_PROFILE',
44                         'DELETE_MONOGRAPH_PART',
45                         'DELETE_VOLUME_PREFIX',
46                         'DELETE_VOLUME_SUFFIX',
47                         'MAP_MONOGRAPH_PART',
48                         'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
49                         'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF',
50                         'UPDATE_BIB_PTYPE',
51                         'UPDATE_IMPORT_ITEM_ATTR_DEF',
52                         'UPDATE_IMPORT_TRASH_FIELD',
53                         'UPDATE_MERGE_PROFILE',
54                         'UPDATE_MONOGRAPH_PART',
55                         'UPDATE_VOLUME_PREFIX',
56                         'UPDATE_VOLUME_SUFFIX'
57                 ) AND NOT EXISTS (
58                         SELECT 1
59                         FROM permission.grp_perm_map AS map
60                         WHERE
61                                 map.grp = pgt.id
62                                 AND map.perm = perm.id
63                 );
64
65 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
66     SELECT
67         pgt.id, perm.id, aout.depth, TRUE
68     FROM
69         permission.grp_tree pgt,
70         permission.perm_list perm,
71         actor.org_unit_type aout
72     WHERE
73         pgt.name = 'Cataloging Administrator' AND
74         aout.name = 'System' AND
75         perm.code IN (
76             'CREATE_COPY_STAT_CAT',
77             'CREATE_COPY_STAT_CAT_ENTRY',
78             'CREATE_COPY_STAT_CAT_ENTRY_MAP',
79             'RUN_REPORTS',
80             'SHARE_REPORT_FOLDER',
81             'UPDATE_COPY_LOCATION',
82             'UPDATE_COPY_STAT_CAT',
83             'UPDATE_COPY_STAT_CAT_ENTRY',
84             'VIEW_REPORT_OUTPUT'
85         ) AND NOT EXISTS (
86             SELECT 1
87             FROM permission.grp_perm_map AS map
88             WHERE
89                 map.grp = pgt.id
90                 AND map.perm = perm.id
91         );
92
93 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
94         SELECT
95                 pgt.id, perm.id, aout.depth, TRUE
96         FROM
97                 permission.grp_tree pgt,
98                 permission.perm_list perm,
99                 actor.org_unit_type aout
100         WHERE
101                 pgt.name = 'Circulation Administrator' AND
102                 aout.name = 'Branch' AND
103                 perm.code IN (
104                         'DELETE_USER'
105                 ) AND NOT EXISTS (
106                         SELECT 1
107                         FROM permission.grp_perm_map AS map
108                         WHERE
109                                 map.grp = pgt.id
110                                 AND map.perm = perm.id
111                 );
112
113 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
114         SELECT
115                 pgt.id, perm.id, aout.depth, TRUE
116         FROM
117                 permission.grp_tree pgt,
118                 permission.perm_list perm,
119                 actor.org_unit_type aout
120         WHERE
121                 pgt.name = 'Circulation Administrator' AND
122                 aout.name = 'Consortium' AND
123                 perm.code IN (
124                         'ABORT_TRANSIT_ON_LOST',
125                         'ABORT_TRANSIT_ON_MISSING',
126                         'ADMIN_MAX_FINE_RULE',
127                         'CREATE_CIRC_DURATION',
128                         'DELETE_CIRC_DURATION',
129                         'MARK_ITEM_MISSING_PIECES',
130                         'UPDATE_CIRC_DURATION',
131                         'UPDATE_HOLD_REQUEST_TIME',
132                         'UPDATE_NET_ACCESS_LEVEL',
133                         'VIEW_CIRC_MATRIX_MATCHPOINT',
134                         'VIEW_HOLD_MATRIX_MATCHPOINT'
135                 ) AND NOT EXISTS (
136                         SELECT 1
137                         FROM permission.grp_perm_map AS map
138                         WHERE
139                                 map.grp = pgt.id
140                                 AND map.perm = perm.id
141                 );
142
143 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
144         SELECT
145                 pgt.id, perm.id, aout.depth, TRUE
146         FROM
147                 permission.grp_tree pgt,
148                 permission.perm_list perm,
149                 actor.org_unit_type aout
150         WHERE
151                 pgt.name = 'Circulation Administrator' AND
152                 aout.name = 'System' AND
153                 perm.code IN (
154                         'ADMIN_BOOKING_RESERVATION',
155                         'ADMIN_BOOKING_RESERVATION_ATTR_MAP',
156                         'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP',
157                         'ADMIN_BOOKING_RESOURCE',
158                         'ADMIN_BOOKING_RESOURCE_ATTR',
159                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
160                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
161                         'ADMIN_BOOKING_RESOURCE_TYPE',
162                         'ADMIN_COPY_LOCATION_ORDER',
163                         'ADMIN_HOLD_CANCEL_CAUSE',
164                         'ASSIGN_GROUP_PERM',
165                         'BAR_PATRON',
166                         'COPY_HOLDS',
167                         'COPY_TRANSIT_RECEIVE',
168                         'CREATE_BILL',
169                         'CREATE_BILLING_TYPE',
170                         'CREATE_NON_CAT_TYPE',
171                         'CREATE_PATRON_STAT_CAT',
172                         'CREATE_PATRON_STAT_CAT_ENTRY',
173                         'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
174                         'CREATE_USER_GROUP_LINK',
175                         'DELETE_BILLING_TYPE',
176                         'DELETE_NON_CAT_TYPE',
177                         'DELETE_PATRON_STAT_CAT',
178                         'DELETE_PATRON_STAT_CAT_ENTRY',
179                         'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
180                         'DELETE_TRANSIT',
181                         'group_application.user.staff',
182                         'MANAGE_BAD_DEBT',
183                         'MARK_ITEM_AVAILABLE',
184                         'MARK_ITEM_BINDERY',
185                         'MARK_ITEM_CHECKED_OUT',
186                         'MARK_ITEM_ILL',
187                         'MARK_ITEM_IN_PROCESS',
188                         'MARK_ITEM_IN_TRANSIT',
189                         'MARK_ITEM_LOST',
190                         'MARK_ITEM_MISSING',
191                         'MARK_ITEM_ON_HOLDS_SHELF',
192                         'MARK_ITEM_ON_ORDER',
193                         'MARK_ITEM_RESHELVING',
194                         'MERGE_USERS',
195                         'money.collections_tracker.create',
196                         'money.collections_tracker.delete',
197                         'OFFLINE_EXECUTE',
198                         'OFFLINE_UPLOAD',
199                         'OFFLINE_VIEW',
200                         'REMOVE_USER_GROUP_LINK',
201                         'SET_CIRC_CLAIMS_RETURNED',
202                         'SET_CIRC_CLAIMS_RETURNED.override',
203                         'SET_CIRC_LOST',
204                         'SET_CIRC_MISSING',
205                         'UNBAR_PATRON',
206                         'UPDATE_BILL_NOTE',
207                         'UPDATE_NON_CAT_TYPE',
208                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
209                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
210                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
211                         'UPDATE_PICKUP_LIB_FROM_TRANSIT',
212                         'UPDATE_USER',
213                         'VIEW_REPORT_OUTPUT',
214                         'VIEW_STANDING_PENALTY',
215                         'VOID_BILLING',
216                         'VOLUME_HOLDS'
217                 ) AND NOT EXISTS (
218                         SELECT 1
219                         FROM permission.grp_perm_map AS map
220                         WHERE
221                                 map.grp = pgt.id
222                                 AND map.perm = perm.id
223                 );
224
225 COMMIT;