Prevent permission group conflicts in 2.1 upgrade script
authorDan Scott <dscott@laurentian.ca>
Thu, 29 Dec 2011 18:33:38 +0000 (13:33 -0500)
committerMike Rylander <mrylander@gmail.com>
Tue, 10 Jan 2012 16:46:12 +0000 (11:46 -0500)
The 2.0-2.1 upgrade script relies on pinned IDs for permission.grp_tree
entries, which might conflict with custom permission groups that a site
might have added previously. A little manipulation can make life safe
for the pinned IDs.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/version-upgrade/2.0-2.1-upgrade-db.sql

index 92d7dd3..50fb178 100644 (file)
@@ -5715,6 +5715,18 @@ INSERT INTO permission.perm_list
 
 -- add new perms AND catch up on some missed upgrade data, if needed
 
+-- Prevent conflicts with existing custom permission groups; as of 2.0.10, 
+-- highest permission.grp_tree ID was 10 for Local System Administrator
+UPDATE permission.grp_tree SET id = id + 100 WHERE id > 10;
+UPDATE permission.grp_tree SET parent = parent + 100 WHERE parent > 10;
+UPDATE actor.usr SET profile = profile + 100 WHERE profile > 10;
+UPDATE permission.grp_perm_map SET grp = grp + 100 WHERE grp > 10;
+UPDATE permission.usr_grp_map SET grp = grp + 100 WHERE grp > 10;
+UPDATE permission.grp_penalty_threshold SET grp = grp + 100 WHERE grp > 10;
+UPDATE config.circ_matrix_matchpoint SET grp = grp + 100 WHERE grp > 10;
+UPDATE config.hold_matrix_matchpoint SET requestor_grp = requestor_grp + 100 WHERE requestor_grp > 10;
+UPDATE config.hold_matrix_matchpoint SET usr_grp = usr_grp + 100 WHERE usr_grp > 10;
+
 -- we could get away from these fixed-id inserts here, but then this
 -- upgrade would be ahead of the mainline, I think