From 46c22b437926dec7e87ab5bb24dfb6a2c6124692 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Sat, 30 Sep 2017 11:15:12 +0200 Subject: [PATCH] Neues Benutzer-Recht Erzeugnisbestandteile editieren MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Erlaubt das Änderun von Erzeugnisbestandteilen auch nachdem es schon produziert wurde. Standardmäßig nicht gesetzt. --- SL/Auth.pm | 5 ++++ SL/Controller/Part.pm | 2 +- doc/changelog | 3 +++ locale/de/all | 1 + sql/Pg-upgrade2-auth/assembly_edit_right.pl | 29 +++++++++++++++++++++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 sql/Pg-upgrade2-auth/assembly_edit_right.pl diff --git a/SL/Auth.pm b/SL/Auth.pm index 116d5de68..04145f2cf 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -1309,6 +1309,11 @@ close the database connection. Creating a new database handle on each request can take up to 30% of the pre-request startup time, so we want to avoid that for fast ajax calls. +=item C + +Checks if current user has the C<$right>. If C<$dont_abort> is falsish +the request dies with a access denied error, otherwise returns true or false. + =back =head1 BUGS diff --git a/SL/Controller/Part.pm b/SL/Controller/Part.pm index f152e0844..d27304029 100644 --- a/SL/Controller/Part.pm +++ b/SL/Controller/Part.pm @@ -813,7 +813,7 @@ sub init_part { sub init_orphaned { my ($self) = @_; - return $self->part->orphaned; + return $::auth->assert('assembly_edit', 1) // $self->part->orphaned; } sub init_models { diff --git a/doc/changelog b/doc/changelog index ca960b482..3f84ac9a5 100644 --- a/doc/changelog +++ b/doc/changelog @@ -14,6 +14,9 @@ große Features kleinere neue Features und Detailverbesserungen: + - Abteilungs-Auswahl konsequent alphabetisch sortieren + - Buchungsvorlagen schneller über den Namen filtern (suchen). + - Neues Recht Erzeugnisse unabhängig vom Status editieren (default 0) - SEPA-XML: alle Sonderzeichen filtern - SEPA-Export: Export wieder rückgängig machen, falls noch Status offen - DATEV-Export: Um Strukturtyp CSV-Export erweitert diff --git a/locale/de/all b/locale/de/all index 4c2ff465f..0bb312692 100755 --- a/locale/de/all +++ b/locale/de/all @@ -267,6 +267,7 @@ $self->{texts} = { 'Allow direct creation of new purchase invoices' => 'Direktes Anlegen neuer Einkaufsrechnungen zulassen', 'Allow the following users access to my follow-ups:' => 'Erlaube den folgenden Benutzern Zugriff auf meine Wiedervorlagen:', 'Allow to delete generated printfiles' => 'Löschen von erzeugten Dokumenten erlaubt', + 'Always edit assembly items (user can change/delete items even if assemblies are already produced)' => 'Erzeugnisbestandteile verändern (Löschen/Umsortieren) auch nachdem dieses Erzeugnis schon produziert wurde.', 'Always save orders with a projectnumber (create new projects)' => 'Aufträge immer mit Projektnummer speichern (neue Projekt erstellen)', 'Amended Advance Turnover Tax Return' => 'Berichtigte Anmeldung', 'Amount' => 'Betrag', diff --git a/sql/Pg-upgrade2-auth/assembly_edit_right.pl b/sql/Pg-upgrade2-auth/assembly_edit_right.pl new file mode 100644 index 000000000..ac494e485 --- /dev/null +++ b/sql/Pg-upgrade2-auth/assembly_edit_right.pl @@ -0,0 +1,29 @@ +# @tag: assembly_edit_right +# @description: Setzt das Recht Erzeugnisbestandteile editieren, auch nachdem es schon erstmalig erzeugt wurde. +# @depends: release_3_5_0 master_rights_position_gaps +# @locales: Always edit assembly items (user can change/delete items even if assemblies are already produced) +package SL::DBUpgrade2::Auth::assembly_edit_right; + +use strict; +use utf8; + +use parent qw(SL::DBUpgrade2::Base); + +use SL::DBUtils; + +sub run { + my ($self) = @_; + + $self->db_query("INSERT INTO auth.master_rights (position, name, description) VALUES ( 55000, 'assembly_edit', 'Always edit assembly items (user can change/delete items even if assemblies are already produced)')"); + + my $groups = $main::auth->read_groups(); + + foreach my $group (values %{$groups}) { + $group->{rights}->{assembly_edit} = 0; + $main::auth->save_group($group); + } + + return 1; +} # end run + +1; -- 2.20.1