Durch falsche Abhängikeiten können bei Updates bestimmte Rechte feste
Positionen größer 1000 zugewiesen bekommen, bevor das Upgrade-Skript zum
Platzschaffen (multiplizieren mit 100) durchlaufen wird.
Diese werden dann auch mit 100 multiplizert und landen ganz am Ende, was nicht
gewollt ist.
Dieser commit behebt sowohl das Problem bei neuen Updates
(v.A. ältere Versionen sind betroffen) und versucht die falschen Positionen
zu korrigieren.
# @tag: all_drafts_edit
# @description: Zugriffsrecht auf alle Entwürfe
-# @depends: release_3_4_0
+# @depends: release_3_4_0 add_master_rights master_rights_position_gaps
# @locales: Edit all drafts
# @ignore: 0
package SL::DBUpgrade2::Auth::all_drafts_edit;
--- /dev/null
+-- @tag: master_rights_positions_fix
+-- @description: Position in Rechtetabelle korrigieren (falls zutreffend)
+-- @depends: release_3_5_4 purchase_letter_rights all_drafts_edit right_purchase_all_edit rights_sales_purchase_edit_prices
+
+UPDATE auth.master_rights SET position = position/100
+ WHERE position > 10000
+ AND name IN ('purchase_letter_edit', 'purchase_letter_report', 'all_drafts_edit');
+
+UPDATE auth.master_rights SET position = (SELECT position + 10 FROM auth.master_rights WHERE name = 'purchase_letter_edit')
+ WHERE position > 10000
+ AND name LIKE 'purchase_all_edit';
+
+UPDATE auth.master_rights SET position =(SELECT position + 10 FROM auth.master_rights WHERE name = 'purchase_all_edit')
+ WHERE position > 10000
+ AND name LIKE 'purchase_edit_prices';
# @tag: purchase_letter_rights
# @description: Neue Rechte für Lieferantenbriefe
-# @depends: release_3_2_0 sales_letter_rights
+# @depends: release_3_4_0 add_master_rights master_rights_position_gaps
# @locales: Edit purchase letters
# @locales: Show purchase letters report
package SL::DBUpgrade2::Auth::purchase_letter_rights;