From: Bernd Bleßmann Date: Tue, 29 Oct 2019 16:24:56 +0000 (+0100) Subject: auth master rights: Skript-Abhängigkeiten und Positionen reparieren X-Git-Tag: release-3.5.6.1~445 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=6e7dcb4d418aa004c22bcd63564c85780e8ba515;p=kivitendo-erp.git auth master rights: Skript-Abhängigkeiten und Positionen reparieren 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. --- diff --git a/sql/Pg-upgrade2-auth/all_drafts_edit.pl b/sql/Pg-upgrade2-auth/all_drafts_edit.pl index 5ee5b5e53..f9db7d056 100644 --- a/sql/Pg-upgrade2-auth/all_drafts_edit.pl +++ b/sql/Pg-upgrade2-auth/all_drafts_edit.pl @@ -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 index 000000000..5ec5ffa6b --- /dev/null +++ b/sql/Pg-upgrade2-auth/master_rights_positions_fix.sql @@ -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'; diff --git a/sql/Pg-upgrade2-auth/purchase_letter_rights.pl b/sql/Pg-upgrade2-auth/purchase_letter_rights.pl index 8987f1f4f..d803cbe46 100644 --- a/sql/Pg-upgrade2-auth/purchase_letter_rights.pl +++ b/sql/Pg-upgrade2-auth/purchase_letter_rights.pl @@ -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;