]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0542.data.perm-list.misc-cat.sql
LP#1178377: Make bib source optional element from unapi.bre
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0542.data.perm-list.misc-cat.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0542', :eg_version); -- phasefx
4
5 INSERT INTO permission.perm_list VALUES
6     (485, 'CREATE_VOLUME_SUFFIX', oils_i18n_gettext(485, 'Create suffix label definition.', 'ppl', 'description'))
7     ,(486, 'UPDATE_VOLUME_SUFFIX', oils_i18n_gettext(486, 'Update suffix label definition.', 'ppl', 'description'))
8     ,(487, 'DELETE_VOLUME_SUFFIX', oils_i18n_gettext(487, 'Delete suffix label definition.', 'ppl', 'description'))
9     ,(488, 'CREATE_VOLUME_PREFIX', oils_i18n_gettext(488, 'Create prefix label definition.', 'ppl', 'description'))
10     ,(489, 'UPDATE_VOLUME_PREFIX', oils_i18n_gettext(489, 'Update prefix label definition.', 'ppl', 'description'))
11     ,(490, 'DELETE_VOLUME_PREFIX', oils_i18n_gettext(490, 'Delete prefix label definition.', 'ppl', 'description'))
12     ,(491, 'CREATE_MONOGRAPH_PART', oils_i18n_gettext(491, 'Create monograph part definition.', 'ppl', 'description'))
13     ,(492, 'UPDATE_MONOGRAPH_PART', oils_i18n_gettext(492, 'Update monograph part definition.', 'ppl', 'description'))
14     ,(493, 'DELETE_MONOGRAPH_PART', oils_i18n_gettext(493, 'Delete monograph part definition.', 'ppl', 'description'))
15     ,(494, 'ADMIN_CODED_VALUE', oils_i18n_gettext(494, 'Create/Update/Delete SVF Record Attribute Coded Value Map', 'ppl', 'description'))
16     ,(495, 'ADMIN_SERIAL_ITEM', oils_i18n_gettext(495, 'Create/Retrieve/Update/Delete Serial Item', 'ppl', 'description'))
17     ,(496, 'ADMIN_SVF', oils_i18n_gettext(496, 'Create/Update/Delete SVF Record Attribute Defintion', 'ppl', 'description'))
18     ,(497, 'CREATE_BIB_PTYPE', oils_i18n_gettext(497, 'Create Bibliographic Record Peer Type', 'ppl', 'description'))
19     ,(498, 'CREATE_PURCHASE_REQUEST', oils_i18n_gettext(498, 'Create User Purchase Request', 'ppl', 'description'))
20     ,(499, 'DELETE_BIB_PTYPE', oils_i18n_gettext(499, 'Delete Bibliographic Record Peer Type', 'ppl', 'description'))
21     ,(500, 'MAP_MONOGRAPH_PART', oils_i18n_gettext(500, 'Create/Update/Delete Copy Monograph Part Map', 'ppl', 'description'))
22     ,(501, 'MARK_ITEM_MISSING_PIECES', oils_i18n_gettext(501, 'Allows the Mark Item Missing Pieces action.', 'ppl', 'description'))
23     ,(502, 'UPDATE_BIB_PTYPE', oils_i18n_gettext(502, 'Update Bibliographic Record Peer Type', 'ppl', 'description'))
24     ,(503, 'UPDATE_HOLD_REQUEST_TIME', oils_i18n_gettext(503, 'Allows editing of a hold''s request time, and/or its Cut-in-line/Top-of-queue flag.', 'ppl', 'description'))
25     ,(504, 'UPDATE_PICKLIST', oils_i18n_gettext(504, 'Allows update/re-use of an acquisitions pick/selection list.', 'ppl', 'description'))
26     ,(505, 'UPDATE_WORKSTATION', oils_i18n_gettext(505, 'Allows update of a workstation during workstation registration override.', 'ppl', 'description'))
27     ,(506, 'VIEW_USER_SETTING_TYPE', oils_i18n_gettext(506, 'Allows viewing of configurable user setting types.', 'ppl', 'description'))
28 ;
29
30
31 -- add new perms AND catch up on some missed upgrade data, if needed
32
33 -- we could get away from these fixed-id inserts here, but then this
34 -- upgrade would be ahead of the mainline, I think
35
36 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
37         SELECT 8, oils_i18n_gettext(8, 'Cataloging Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.cat_admin'
38         WHERE NOT EXISTS (
39                 SELECT 1
40                 FROM permission.grp_tree
41                 WHERE
42                         id = 8
43         );
44
45 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
46         SELECT 9, oils_i18n_gettext(9, 'Circulation Administrator', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.circ_admin'
47         WHERE NOT EXISTS (
48                 SELECT 1
49                 FROM permission.grp_tree
50                 WHERE
51                         id = 9
52         );
53
54 UPDATE permission.grp_tree SET description = oils_i18n_gettext(10, 'Can do anything at the Branch level', 'pgt', 'description') WHERE id = 10;
55
56 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
57         SELECT 11, oils_i18n_gettext(11, 'Serials', 'pgt', 'name'), 3, oils_i18n_gettext(11, 'Serials (includes admin features)', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.serials'
58         WHERE NOT EXISTS (
59                 SELECT 1
60                 FROM permission.grp_tree
61                 WHERE
62                         id = 11
63         );
64
65 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
66         SELECT 12, oils_i18n_gettext(12, 'System Administrator', 'pgt', 'name'), 3, oils_i18n_gettext(12, 'Can do anything at the System level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.system_admin'
67         WHERE NOT EXISTS (
68                 SELECT 1
69                 FROM permission.grp_tree
70                 WHERE
71                         id = 12
72         );
73
74 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
75         SELECT 13, oils_i18n_gettext(13, 'Global Administrator', 'pgt', 'name'), 3, oils_i18n_gettext(13, 'Can do anything at the Consortium level', 'pgt', 'description'), '3 years', TRUE, 'group_application.user.staff.admin.global_admin'
76         WHERE NOT EXISTS (
77                 SELECT 1
78                 FROM permission.grp_tree
79                 WHERE
80                         id = 13
81         );
82
83 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
84         SELECT 14, oils_i18n_gettext(14, 'Data Review', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.data_review'
85         WHERE NOT EXISTS (
86                 SELECT 1
87                 FROM permission.grp_tree
88                 WHERE
89                         id = 14
90         );
91
92 INSERT INTO permission.grp_tree (id, name, parent, description, perm_interval, usergroup, application_perm)
93         SELECT 15, oils_i18n_gettext(15, 'Volunteers', 'pgt', 'name'), 3, NULL, '3 years', TRUE, 'group_application.user.staff.volunteers'
94         WHERE NOT EXISTS (
95                 SELECT 1
96                 FROM permission.grp_tree
97                 WHERE
98                         id = 15
99         );
100
101
102
103 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
104         SELECT
105                 pgt.id, perm.id, aout.depth, TRUE
106         FROM
107                 permission.grp_tree pgt,
108                 permission.perm_list perm,
109                 actor.org_unit_type aout
110         WHERE
111                 pgt.name = 'Cataloging Administrator' AND
112                 aout.name = 'Consortium' AND
113                 perm.code IN (
114                         'ADMIN_IMPORT_ITEM_ATTR_DEF',
115                         'ADMIN_MERGE_PROFILE',
116                         'CREATE_AUTHORITY_IMPORT_IMPORT_DEF',
117                         'CREATE_BIB_IMPORT_FIELD_DEF',
118                         'CREATE_BIB_PTYPE',
119                         'CREATE_BIB_SOURCE',
120                         'CREATE_IMPORT_ITEM_ATTR_DEF',
121                         'CREATE_IMPORT_TRASH_FIELD',
122                         'CREATE_MERGE_PROFILE',
123                         'CREATE_MONOGRAPH_PART',
124                         'CREATE_VOLUME_PREFIX',
125                         'CREATE_VOLUME_SUFFIX',
126                         'DELETE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
127                         'DELETE_BIB_PTYPE',
128                         'DELETE_BIB_SOURCE',
129                         'DELETE_IMPORT_ITEM_ATTR_DEF',
130                         'DELETE_IMPORT_TRASH_FIELD',
131                         'DELETE_MERGE_PROFILE',
132                         'DELETE_MONOGRAPH_PART',
133                         'DELETE_VOLUME_PREFIX',
134                         'DELETE_VOLUME_SUFFIX',
135                         'MAP_MONOGRAPH_PART',
136                         'UPDATE_AUTHORITY_IMPORT_IMPORT_FIELD_DEF',
137                         'UPDATE_BIB_IMPORT_IMPORT_FIELD_DEF',
138                         'UPDATE_BIB_PTYPE',
139                         'UPDATE_IMPORT_ITEM_ATTR_DEF',
140                         'UPDATE_IMPORT_TRASH_FIELD',
141                         'UPDATE_MERGE_PROFILE',
142                         'UPDATE_MONOGRAPH_PART',
143                         'UPDATE_VOLUME_PREFIX',
144                         'UPDATE_VOLUME_SUFFIX'
145                 ) AND NOT EXISTS (
146                         SELECT 1
147                         FROM permission.grp_perm_map AS map
148                         WHERE
149                                 map.grp = pgt.id
150                                 AND map.perm = perm.id
151                 );
152
153 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
154         SELECT
155                 pgt.id, perm.id, aout.depth, TRUE
156         FROM
157                 permission.grp_tree pgt,
158                 permission.perm_list perm,
159                 actor.org_unit_type aout
160         WHERE
161                 pgt.name = 'Circulation Administrator' AND
162                 aout.name = 'Branch' AND
163                 perm.code IN (
164                         'DELETE_USER'
165                 ) AND NOT EXISTS (
166                         SELECT 1
167                         FROM permission.grp_perm_map AS map
168                         WHERE
169                                 map.grp = pgt.id
170                                 AND map.perm = perm.id
171                 );
172
173 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
174         SELECT
175                 pgt.id, perm.id, aout.depth, TRUE
176         FROM
177                 permission.grp_tree pgt,
178                 permission.perm_list perm,
179                 actor.org_unit_type aout
180         WHERE
181                 pgt.name = 'Circulation Administrator' AND
182                 aout.name = 'Consortium' AND
183                 perm.code IN (
184                         'ADMIN_MAX_FINE_RULE',
185                         'CREATE_CIRC_DURATION',
186                         'DELETE_CIRC_DURATION',
187                         'MARK_ITEM_MISSING_PIECES',
188                         'UPDATE_CIRC_DURATION',
189                         'UPDATE_HOLD_REQUEST_TIME',
190                         'UPDATE_NET_ACCESS_LEVEL',
191                         'VIEW_CIRC_MATRIX_MATCHPOINT',
192                         'VIEW_HOLD_MATRIX_MATCHPOINT'
193                 ) AND NOT EXISTS (
194                         SELECT 1
195                         FROM permission.grp_perm_map AS map
196                         WHERE
197                                 map.grp = pgt.id
198                                 AND map.perm = perm.id
199                 );
200
201 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
202         SELECT
203                 pgt.id, perm.id, aout.depth, TRUE
204         FROM
205                 permission.grp_tree pgt,
206                 permission.perm_list perm,
207                 actor.org_unit_type aout
208         WHERE
209                 pgt.name = 'Circulation Administrator' AND
210                 aout.name = 'System' AND
211                 perm.code IN (
212                         'ADMIN_BOOKING_RESERVATION',
213                         'ADMIN_BOOKING_RESERVATION_ATTR_MAP',
214                         'ADMIN_BOOKING_RESERVATION_ATTR_VALUE_MAP',
215                         'ADMIN_BOOKING_RESOURCE',
216                         'ADMIN_BOOKING_RESOURCE_ATTR',
217                         'ADMIN_BOOKING_RESOURCE_ATTR_MAP',
218                         'ADMIN_BOOKING_RESOURCE_ATTR_VALUE',
219                         'ADMIN_BOOKING_RESOURCE_TYPE',
220                         'ADMIN_COPY_LOCATION_ORDER',
221                         'ADMIN_HOLD_CANCEL_CAUSE',
222                         'ASSIGN_GROUP_PERM',
223                         'BAR_PATRON',
224                         'COPY_HOLDS',
225                         'COPY_TRANSIT_RECEIVE',
226                         'CREATE_BILL',
227                         'CREATE_BILLING_TYPE',
228                         'CREATE_NON_CAT_TYPE',
229                         'CREATE_PATRON_STAT_CAT',
230                         'CREATE_PATRON_STAT_CAT_ENTRY',
231                         'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
232                         'CREATE_USER_GROUP_LINK',
233                         'DELETE_BILLING_TYPE',
234                         'DELETE_NON_CAT_TYPE',
235                         'DELETE_PATRON_STAT_CAT',
236                         'DELETE_PATRON_STAT_CAT_ENTRY',
237                         'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
238                         'DELETE_TRANSIT',
239                         'group_application.user.staff',
240                         'MANAGE_BAD_DEBT',
241                         'MARK_ITEM_AVAILABLE',
242                         'MARK_ITEM_BINDERY',
243                         'MARK_ITEM_CHECKED_OUT',
244                         'MARK_ITEM_ILL',
245                         'MARK_ITEM_IN_PROCESS',
246                         'MARK_ITEM_IN_TRANSIT',
247                         'MARK_ITEM_LOST',
248                         'MARK_ITEM_MISSING',
249                         'MARK_ITEM_ON_HOLDS_SHELF',
250                         'MARK_ITEM_ON_ORDER',
251                         'MARK_ITEM_RESHELVING',
252                         'MERGE_USERS',
253                         'money.collections_tracker.create',
254                         'money.collections_tracker.delete',
255                         'OFFLINE_EXECUTE',
256                         'OFFLINE_UPLOAD',
257                         'OFFLINE_VIEW',
258                         'REMOVE_USER_GROUP_LINK',
259                         'SET_CIRC_CLAIMS_RETURNED',
260                         'SET_CIRC_CLAIMS_RETURNED.override',
261                         'SET_CIRC_LOST',
262                         'SET_CIRC_MISSING',
263                         'UNBAR_PATRON',
264                         'UPDATE_BILL_NOTE',
265                         'UPDATE_NON_CAT_TYPE',
266                         'UPDATE_PATRON_CLAIM_NEVER_CHECKED_OUT_COUNT',
267                         'UPDATE_PATRON_CLAIM_RETURN_COUNT',
268                         'UPDATE_PICKUP_LIB_FROM_HOLDS_SHELF',
269                         'UPDATE_PICKUP_LIB_FROM_TRANSIT',
270                         'UPDATE_USER',
271                         'VIEW_REPORT_OUTPUT',
272                         'VIEW_STANDING_PENALTY',
273                         'VOID_BILLING',
274                         'VOLUME_HOLDS'
275                 ) AND NOT EXISTS (
276                         SELECT 1
277                         FROM permission.grp_perm_map AS map
278                         WHERE
279                                 map.grp = pgt.id
280                                 AND map.perm = perm.id
281                 );
282
283 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
284         SELECT
285                 pgt.id, perm.id, aout.depth, TRUE
286         FROM
287                 permission.grp_tree pgt,
288                 permission.perm_list perm,
289                 actor.org_unit_type aout
290         WHERE
291                 pgt.name = 'Local Administrator' AND
292                 aout.name = 'Branch' AND
293                 perm.code IN (
294                         'EVERYTHING'
295                 ) AND NOT EXISTS (
296                         SELECT 1
297                         FROM permission.grp_perm_map AS map
298                         WHERE
299                                 map.grp = pgt.id
300                                 AND map.perm = perm.id
301                 );
302
303 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
304         SELECT
305                 pgt.id, perm.id, aout.depth, FALSE
306         FROM
307                 permission.grp_tree pgt,
308                 permission.perm_list perm,
309                 actor.org_unit_type aout
310         WHERE
311                 pgt.name = 'Serials' AND
312                 aout.name = 'System' AND
313                 perm.code IN (
314                         'ADMIN_ASSET_COPY_TEMPLATE',
315                         'ADMIN_SERIAL_CAPTION_PATTERN',
316                         'ADMIN_SERIAL_DISTRIBUTION',
317                         'ADMIN_SERIAL_ITEM',
318                         'ADMIN_SERIAL_STREAM',
319                         'ADMIN_SERIAL_SUBSCRIPTION',
320                         'ISSUANCE_HOLDS',
321                         'RECEIVE_SERIAL'
322                 ) AND NOT EXISTS (
323                         SELECT 1
324                         FROM permission.grp_perm_map AS map
325                         WHERE
326                                 map.grp = pgt.id
327                                 AND map.perm = perm.id
328                 );
329
330 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
331         SELECT
332                 pgt.id, perm.id, aout.depth, TRUE
333         FROM
334                 permission.grp_tree pgt,
335                 permission.perm_list perm,
336                 actor.org_unit_type aout
337         WHERE
338                 pgt.name = 'System Administrator' AND
339                 aout.name = 'System' AND
340                 perm.code IN (
341                         'EVERYTHING'
342                 ) AND NOT EXISTS (
343                         SELECT 1
344                         FROM permission.grp_perm_map AS map
345                         WHERE
346                                 map.grp = pgt.id
347                                 AND map.perm = perm.id
348                 );
349
350 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
351         SELECT
352                 pgt.id, perm.id, aout.depth, FALSE
353         FROM
354                 permission.grp_tree pgt,
355                 permission.perm_list perm,
356                 actor.org_unit_type aout
357         WHERE
358                 pgt.name = 'System Administrator' AND
359                 aout.name = 'Consortium' AND
360                 perm.code ~ '^VIEW_TRIGGER'
361                 AND NOT EXISTS (
362                         SELECT 1
363                         FROM permission.grp_perm_map AS map
364                         WHERE
365                                 map.grp = pgt.id
366                                 AND map.perm = perm.id
367                 );
368
369 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
370         SELECT
371                 pgt.id, perm.id, aout.depth, TRUE
372         FROM
373                 permission.grp_tree pgt,
374                 permission.perm_list perm,
375                 actor.org_unit_type aout
376         WHERE
377                 pgt.name = 'Global Administrator' AND
378                 aout.name = 'Consortium' AND
379                 perm.code IN (
380                         'EVERYTHING'
381                 ) AND NOT EXISTS (
382                         SELECT 1
383                         FROM permission.grp_perm_map AS map
384                         WHERE
385                                 map.grp = pgt.id
386                                 AND map.perm = perm.id
387                 );
388
389 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
390         SELECT
391                 pgt.id, perm.id, aout.depth, FALSE
392         FROM
393                 permission.grp_tree pgt,
394                 permission.perm_list perm,
395                 actor.org_unit_type aout
396         WHERE
397                 pgt.name = 'Data Review' AND
398                 aout.name = 'Consortium' AND
399                 perm.code IN (
400                         'CREATE_COPY_TRANSIT',
401                         'VIEW_BILLING_TYPE',
402                         'VIEW_CIRCULATIONS',
403                         'VIEW_COPY_NOTES',
404                         'VIEW_HOLD',
405                         'VIEW_ORG_SETTINGS',
406                         'VIEW_TITLE_NOTES',
407                         'VIEW_TRANSACTION',
408                         'VIEW_USER',
409                         'VIEW_USER_FINES_SUMMARY',
410                         'VIEW_USER_TRANSACTIONS',
411                         'VIEW_VOLUME_NOTES',
412                         'VIEW_ZIP_DATA'
413                 ) AND NOT EXISTS (
414                         SELECT 1
415                         FROM permission.grp_perm_map AS map
416                         WHERE
417                                 map.grp = pgt.id
418                                 AND map.perm = perm.id
419                 );
420
421 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
422         SELECT
423                 pgt.id, perm.id, aout.depth, FALSE
424         FROM
425                 permission.grp_tree pgt,
426                 permission.perm_list perm,
427                 actor.org_unit_type aout
428         WHERE
429                 pgt.name = 'Data Review' AND
430                 aout.name = 'System' AND
431                 perm.code IN (
432                         'COPY_CHECKOUT',
433                         'COPY_HOLDS',
434                         'CREATE_IN_HOUSE_USE',
435                         'CREATE_TRANSACTION',
436                         'OFFLINE_EXECUTE',
437                         'OFFLINE_VIEW',
438                         'STAFF_LOGIN',
439                         'VOLUME_HOLDS'
440                 ) AND NOT EXISTS (
441                         SELECT 1
442                         FROM permission.grp_perm_map AS map
443                         WHERE
444                                 map.grp = pgt.id
445                                 AND map.perm = perm.id
446                 );
447
448 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
449         SELECT
450                 pgt.id, perm.id, aout.depth, FALSE
451         FROM
452                 permission.grp_tree pgt,
453                 permission.perm_list perm,
454                 actor.org_unit_type aout
455         WHERE
456                 pgt.name = 'Volunteers' AND
457                 aout.name = 'Branch' AND
458                 perm.code IN (
459                         'COPY_CHECKOUT',
460                         'CREATE_BILL',
461                         'CREATE_IN_HOUSE_USE',
462                         'CREATE_PAYMENT',
463                         'VIEW_BILLING_TYPE',
464                         'VIEW_CIRCS',
465                         'VIEW_COPY_CHECKOUT',
466                         'VIEW_HOLD',
467                         'VIEW_TITLE_HOLDS',
468                         'VIEW_TRANSACTION',
469                         'VIEW_USER',
470                         'VIEW_USER_FINES_SUMMARY',
471                         'VIEW_USER_TRANSACTIONS'
472                 ) AND NOT EXISTS (
473                         SELECT 1
474                         FROM permission.grp_perm_map AS map
475                         WHERE
476                                 map.grp = pgt.id
477                                 AND map.perm = perm.id
478                 );
479
480 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
481         SELECT
482                 pgt.id, perm.id, aout.depth, FALSE
483         FROM
484                 permission.grp_tree pgt,
485                 permission.perm_list perm,
486                 actor.org_unit_type aout
487         WHERE
488                 pgt.name = 'Volunteers' AND
489                 aout.name = 'Consortium' AND
490                 perm.code IN (
491                         'CREATE_COPY_TRANSIT',
492                         'CREATE_TRANSACTION',
493                         'CREATE_TRANSIT',
494                         'STAFF_LOGIN',
495                         'TRANSIT_COPY',
496                         'VIEW_ORG_SETTINGS'
497                 ) AND NOT EXISTS (
498                         SELECT 1
499                         FROM permission.grp_perm_map AS map
500                         WHERE
501                                 map.grp = pgt.id
502                                 AND map.perm = perm.id
503                 );
504
505
506 -- stock Users group
507 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
508         SELECT
509                 pgt.id, perm.id, aout.depth, FALSE
510         FROM
511                 permission.grp_tree pgt,
512                 permission.perm_list perm,
513                 actor.org_unit_type aout
514         WHERE
515                 pgt.name = 'Users' AND
516                 aout.name = 'Consortium' AND
517                 perm.code IN (
518                         'CREATE_PURCHASE_REQUEST'
519                 ) AND NOT EXISTS (
520                         SELECT 1
521                         FROM permission.grp_perm_map AS map
522                         WHERE
523                                 map.grp = pgt.id
524                                 AND map.perm = perm.id
525                 );
526
527 -- stock Staff group
528 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
529         SELECT
530                 pgt.id, perm.id, aout.depth, FALSE
531         FROM
532                 permission.grp_tree pgt,
533                 permission.perm_list perm,
534                 actor.org_unit_type aout
535         WHERE
536                 pgt.name = 'Staff' AND
537                 aout.name = 'Consortium' AND
538                 perm.code IN (
539                         'VIEW_USER_SETTING_TYPE'
540                 ) AND NOT EXISTS (
541                         SELECT 1
542                         FROM permission.grp_perm_map AS map
543                         WHERE
544                                 map.grp = pgt.id
545                                 AND map.perm = perm.id
546                 );
547
548 -- stock Circulators group
549 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
550         SELECT
551                 pgt.id, perm.id, aout.depth, FALSE
552         FROM
553                 permission.grp_tree pgt,
554                 permission.perm_list perm,
555                 actor.org_unit_type aout
556         WHERE
557                 pgt.name = 'Circulators' AND
558                 aout.name = 'Branch' AND
559                 perm.code IN (
560                         'MARK_ITEM_MISSING_PIECES'
561                 ) AND NOT EXISTS (
562                         SELECT 1
563                         FROM permission.grp_perm_map AS map
564                         WHERE
565                                 map.grp = pgt.id
566                                 AND map.perm = perm.id
567                 );
568
569 -- stock Catalogers group
570 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
571         SELECT
572                 pgt.id, perm.id, aout.depth, FALSE
573         FROM
574                 permission.grp_tree pgt,
575                 permission.perm_list perm,
576                 actor.org_unit_type aout
577         WHERE
578                 pgt.name = 'Catalogers' AND
579                 aout.name = 'System' AND
580                 perm.code IN (
581                         'MAP_MONOGRAPH_PART'
582                 ) AND NOT EXISTS (
583                         SELECT 1
584                         FROM permission.grp_perm_map AS map
585                         WHERE
586                                 map.grp = pgt.id
587                                 AND map.perm = perm.id
588                 );
589
590 -- stock Acquisitions group
591 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
592         SELECT
593                 pgt.id, perm.id, aout.depth, FALSE
594         FROM
595                 permission.grp_tree pgt,
596                 permission.perm_list perm,
597                 actor.org_unit_type aout
598         WHERE
599                 pgt.name = 'Acquisitions' AND
600                 aout.name = 'Consortium' AND
601                 perm.code IN (
602                         'UPDATE_PICKLIST'
603                 ) AND NOT EXISTS (
604                         SELECT 1
605                         FROM permission.grp_perm_map AS map
606                         WHERE
607                                 map.grp = pgt.id
608                                 AND map.perm = perm.id
609                 );
610
611 -- stock Acq Admin group
612 INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
613         SELECT
614                 pgt.id, perm.id, aout.depth, TRUE
615         FROM
616                 permission.grp_tree pgt,
617                 permission.perm_list perm,
618                 actor.org_unit_type aout
619         WHERE
620                 pgt.name = 'Acquisitions Administrator' AND
621                 aout.name = 'Consortium' AND
622                 perm.code IN (
623                         'UPDATE_PICKLIST'
624                 ) AND NOT EXISTS (
625                         SELECT 1
626                         FROM permission.grp_perm_map AS map
627                         WHERE
628                                 map.grp = pgt.id
629                                 AND map.perm = perm.id
630                 );
631
632 COMMIT;