Neues Benutzer-Recht Erzeugnisbestandteile editieren
authorJan Büren <jan@kivitendo-premium.de>
Sat, 30 Sep 2017 09:15:12 +0000 (11:15 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Sat, 30 Sep 2017 09:15:12 +0000 (11:15 +0200)
Erlaubt das Änderun von Erzeugnisbestandteilen auch nachdem es
schon produziert wurde. Standardmäßig nicht gesetzt.

SL/Auth.pm
SL/Controller/Part.pm
doc/changelog
locale/de/all
sql/Pg-upgrade2-auth/assembly_edit_right.pl [new file with mode: 0644]

index 116d5de..04145f2 100644 (file)
@@ -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<assert, $right, $dont_abort>
+
+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
index f152e08..d273040 100644 (file)
@@ -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 {
index ca960b4..3f84ac9 100644 (file)
@@ -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
index 4c2ff46..0bb3126 100755 (executable)
@@ -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 (file)
index 0000000..ac494e4
--- /dev/null
@@ -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;