]> wagnertech.de Git - kivitendo-erp.git/commitdiff
auth master rights: Skript-Abhängigkeiten und Positionen reparieren
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 29 Oct 2019 16:24:56 +0000 (17:24 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 29 Oct 2019 16:24:56 +0000 (17:24 +0100)
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.

sql/Pg-upgrade2-auth/all_drafts_edit.pl
sql/Pg-upgrade2-auth/master_rights_positions_fix.sql [new file with mode: 0644]
sql/Pg-upgrade2-auth/purchase_letter_rights.pl

index 5ee5b5e5328856aa543e403211a983a6233dcacc..f9db7d056fbfb6131049b850668ddfafe9f889a3 100644 (file)
@@ -1,6 +1,6 @@
 # @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;
diff --git a/sql/Pg-upgrade2-auth/master_rights_positions_fix.sql b/sql/Pg-upgrade2-auth/master_rights_positions_fix.sql
new file mode 100644 (file)
index 0000000..5ec5ffa
--- /dev/null
@@ -0,0 +1,15 @@
+-- @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';
index 8987f1f4f6b4a3c357517cee5bc0647c6eb645d2..d803cbe46adc680835de89db04abd7926fe8902f 100644 (file)
@@ -1,6 +1,6 @@
 # @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;