Neues Recht für Anzeige von Artikeldetails/-berichten
authorNiclas Zimmermann <niclas@kivitendo-premium.de>
Mon, 15 Jul 2013 14:03:23 +0000 (16:03 +0200)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Thu, 18 Jul 2013 07:29:08 +0000 (09:29 +0200)
Statt nur ein Recht für die Bearbeitung von Artikeln zu haben, das gleichzeitig auch das Recht
für die Anzeige von Details und Berichten über Artikel umfasst, wurde nun ein neues Recht eingeführt.
Das alte Recht "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" wurde also in zwei
Rechte aufgeteilt, nämlich "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" und
"Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen".

SL/Auth.pm
bin/mozilla/ic.pl
bin/mozilla/invoice_io.pl
bin/mozilla/io.pl
doc/changelog
locale/de/all
menu.ini
sql/Pg-upgrade2-auth/details_and_report_of_parts.pl [new file with mode: 0644]
templates/webpages/ic/form_footer.html

index 00a4b3b..bbf4b32 100644 (file)
@@ -1050,6 +1050,7 @@ sub all_rights_full {
     ["customer_vendor_edit",           $locale->text("Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)")],
     ["customer_vendor_all_edit",       $locale->text("Create customers and vendors. Edit all vendors. Edit all customers")],
     ["part_service_assembly_edit",     $locale->text("Create and edit parts, services, assemblies")],
+    ["part_service_assembly_details",  $locale->text("Show details and reports of parts, services, assemblies")],
     ["project_edit",                   $locale->text("Create and edit projects")],
     ["--ar",                           $locale->text("AR")],
     ["sales_quotation_edit",           $locale->text("Create and edit sales quotations")],
index 3434861..cfe6451 100644 (file)
@@ -94,7 +94,7 @@ sub add {
 sub search {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   $form->{revers}       = 0;  # switch for backward sorting
   $form->{lastsort}     = ""; # memory for which table was sort at last time
@@ -1009,7 +1009,7 @@ sub addtop100 {
 sub generate_report {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   my ($revers, $lastsort, $description);
 
@@ -1461,7 +1461,7 @@ sub parts_subtotal {
 sub edit {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   # show history button
   $form->{javascript} = qq|<script type="text/javascript" src="js/show_history.js"></script>|;
@@ -1482,7 +1482,7 @@ sub edit {
 sub link_part {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   IC->create_links("IC", \%myconfig, \%$form);
 
@@ -1572,7 +1572,7 @@ sub link_part {
 sub form_header {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   $form->{pg_keys}          = sub { "$_[0]->{partsgroup}--$_[0]->{id}" };
   $form->{description_area} = ($form->{rows} = $form->numtextrows($form->{description}, 40)) > 1;
@@ -1624,6 +1624,9 @@ sub form_header {
   #                                                     BUCHUNGSGRUPPEN   => $form->{BUCHUNGSGRUPPEN},
   #                                                     payment_terms     => $form->{payment_terms},
   #                                                     all_partsgroup    => $form->{all_partsgroup}});
+
+  $form->{show_edit_buttons} = $main::auth->check_right($form->{login}, 'part_service_assembly_edit');
+
   print $form->parse_html_template('ic/form_header');
   $lxdebug->leave_sub();
 }
@@ -1631,7 +1634,7 @@ sub form_header {
 sub form_footer {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   print $form->parse_html_template('ic/form_footer');
 
@@ -1766,6 +1769,8 @@ sub assembly_row {
 sub update {
   $lxdebug->enter_sub();
 
+  $auth->assert('part_service_assembly_edit');
+
   # parse pricegroups. and no, don't rely on check_form for this...
   map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows};
   $form->{sellprice} = $form->parse_amount(\%myconfig, $form->{sellprice});
@@ -2031,7 +2036,7 @@ sub delete {
 sub price_row {
   $lxdebug->enter_sub();
 
-  $auth->assert('part_service_assembly_edit');
+  $auth->assert('part_service_assembly_details');
 
   my ($numrows) = @_;
 
index 843a32f..c698128 100644 (file)
@@ -146,7 +146,7 @@ sub display_form {
 
   $main::auth->assert('part_service_assembly_edit   | vendor_invoice_edit       | sales_order_edit    | invoice_edit |' .
                 'request_quotation_edit       | sales_quotation_edit      | purchase_order_edit | '.
-                'purchase_delivery_order_edit | sales_delivery_order_edit');
+                'purchase_delivery_order_edit | sales_delivery_order_edit | part_service_assembly_details');
 
   relink_accounts();
   retrieve_partunits() if ($form->{type} =~ /_delivery_order$/);
index e7ba050..0ca15d4 100644 (file)
@@ -103,7 +103,7 @@ use Data::Dumper;
 sub _check_io_auth {
   $main::auth->assert('part_service_assembly_edit   | vendor_invoice_edit       | sales_order_edit    | invoice_edit |' .
                 'request_quotation_edit       | sales_quotation_edit      | purchase_order_edit | ' .
-                'purchase_delivery_order_edit | sales_delivery_order_edit');
+                'purchase_delivery_order_edit | sales_delivery_order_edit | part_service_assembly_details');
 }
 
 ########################################
index 95a0b2e..c8ed512 100644 (file)
@@ -39,6 +39,13 @@ Größere neue Features:
 
 Kleinere neue Features und Detailverbesserungen:
 
+- Recht für die Anzeige von Details und Berichte von Waren, Dienstleistungen und Erzeugnissen
+  Statt nur ein Recht für die Bearbeitung von Artikeln zu haben, das gleichzeitig auch das Recht
+  für die Anzeige von Details und Berichten über Artikel umfasst, wurde nun ein neues Recht eingeführt.
+  Das alte Recht "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" wurde also in zwei
+  Rechte aufgeteilt, nämlich "Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten" und
+  "Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen".
+
 - Recht für Produktivität und für Anzeige des Links zum Administrationsmenü
   Man kann den gesamten Produktivitätsbereich jetzt nur noch nutzen, wenn man die entsprechenden Rechte hat.
   Auch der Link Unter dem Menü-Punkt Programm zum Administrationsmenü wird jetzt nur noch
index e0eb2da..272da98 100755 (executable)
@@ -1822,6 +1822,7 @@ $self->{texts} = {
   'Show delete button in sales delivery orders?' => 'Soll der "Löschen"-Knopf bei Verkaufslieferscheinen angezeigt werden?',
   'Show delete button in sales orders?' => 'Soll der "Löschen"-Knopf bei Kundenaufträgen angezeigt werden?',
   'Show details'                => 'Detailsanzeige',
+  'Show details and reports of parts, services, assemblies' => 'Details und Berichte von Waren, Dienstleistungen und Erzeugnissen anzeigen',
   'Show fields used for the best before date?' => 'Felder zur Eingabe des Mindesthaltbarkeitsdatums anzeigen?',
   'Show follow ups...'          => 'Zeige Wiedervorlagen...',
   'Show help text'              => 'Hilfetext anzeigen',
index e72e47a..5031c98 100644 (file)
--- a/menu.ini
+++ b/menu.ini
@@ -64,19 +64,19 @@ module=ct.pl
 action=search_contact
 
 [Master Data--Reports--Parts]
-ACCESS=part_service_assembly_edit
+ACCESS=part_service_assembly_details
 module=ic.pl
 action=search
 searchitems=part
 
 [Master Data--Reports--Services]
-ACCESS=part_service_assembly_edit
+ACCESS=part_service_assembly_details
 module=ic.pl
 action=search
 searchitems=service
 
 [Master Data--Reports--Assemblies]
-ACCESS=part_service_assembly_edit
+ACCESS=part_service_assembly_details
 module=ic.pl
 action=search
 searchitems=assembly
diff --git a/sql/Pg-upgrade2-auth/details_and_report_of_parts.pl b/sql/Pg-upgrade2-auth/details_and_report_of_parts.pl
new file mode 100644 (file)
index 0000000..762d98f
--- /dev/null
@@ -0,0 +1,26 @@
+# @tag: details_and_report_of_parts
+# @description: Setzt das Recht zur Anzeige von Details und Berichten von Waren, Dienstleistungen und Erzeugnissen
+# @depends: release_3_0_0
+package SL::DBUpgrade2::details_and_report_of_parts;
+
+use strict;
+use utf8;
+
+use parent qw(SL::DBUpgrade2::Base);
+
+use SL::DBUtils;
+
+sub run {
+  my ($self) = @_;
+
+  my $groups = $main::auth->read_groups();
+
+  foreach my $group (values %{$groups}) {
+    $group->{rights}->{part_service_assembly_details} = $group->{rights}->{part_service_assembly_edit};
+    $main::auth->save_group($group);
+  }
+
+  return 1;
+} # end run
+
+1;
index 416b54b..7039131 100644 (file)
@@ -53,6 +53,8 @@
 
 </div>
 
+[%- IF show_edit_buttons %]
+
 <input class="submit" type="submit" name="action" value="[% 'Update' | $T8 %]">
 <input type="hidden" name="price_rows" value="[% HTML.escape(price_rows) %]">
 <input class="submit" type="submit" name="action" value="[% 'Save' | $T8 %]">
@@ -75,6 +77,8 @@
     [%- END %]
   [%- END %]
 
+[%- END %]
+
   [%- IF id != "" %]
 <input type="button" class="submit" onclick="set_history_window([% id %]);" name="history" id="history" value="[% 'history' | $T8 %]">
   [%- END %]