From 606032ad1617f22d19e7113c40b620b9efaa5286 Mon Sep 17 00:00:00 2001 From: Niclas Zimmermann Date: Fri, 7 Jun 2013 13:38:06 +0200 Subject: [PATCH] =?utf8?q?Recht=20f=C3=BCr=20Anzeige=20der=20Produktivit?= =?utf8?q?=C3=A4t?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Um die Produktivität einzusehen, ist jetzt ein Recht erforderlich. Standardmäßig wird dieses Recht gegeben, um den gleichen Zustand wie vor dem Commit zu garantieren. Weiterhin gibt es nun auch das Recht für Anzeige des Administrationslinks im Menü-Punkt Programme. Das Upgrade-Script sorgt dafür, dass die Rechte weiterhin gelten, weil sie vorher ja jeder User hatte. Der Commit enthält auch den Changelog-Eintrag für diese Änderung. Implementiert #2290. --- SL/Auth.pm | 2 ++ bin/mozilla/fu.pl | 26 +++++++++++++++++++++++++ bin/mozilla/login.pl | 2 +- bin/mozilla/todo.pl | 8 ++++++++ doc/changelog | 8 ++++++++ locale/de/all | 1 + menu.ini | 2 ++ sql/Pg-upgrade2/productivity_rights.pl | 27 ++++++++++++++++++++++++++ 8 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 sql/Pg-upgrade2/productivity_rights.pl diff --git a/SL/Auth.pm b/SL/Auth.pm index 3ef266065..23a9771e7 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -1060,6 +1060,8 @@ sub all_rights_full { ["email_bcc", $locale->text("May set the BCC field when sending emails")], ["config", $locale->text("Change kivitendo installation settings (all menu entries beneath 'System')")], ["admin", $locale->text("Administration (Used to access instance administration from user logins)")], + ["productivity", $locale->text("Productivity")], + ["display_admin_link", $locale->text("Show administration link")], ); return @all_rights; diff --git a/bin/mozilla/fu.pl b/bin/mozilla/fu.pl index 3b5adb230..ef80a73cd 100644 --- a/bin/mozilla/fu.pl +++ b/bin/mozilla/fu.pl @@ -10,6 +10,8 @@ use strict; sub _collect_links { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $dest = shift; my $form = $main::form; @@ -28,6 +30,8 @@ sub _collect_links { sub add { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; @@ -57,6 +61,8 @@ sub add { sub edit { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -82,6 +88,8 @@ sub edit { sub display_form { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; $form->get_lists("employees" => "EMPLOYEES"); @@ -102,6 +110,8 @@ sub display_form { sub save_follow_up { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -139,6 +149,8 @@ sub save_follow_up { sub finish { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -175,6 +187,8 @@ sub finish { sub delete { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -211,6 +225,8 @@ sub delete { sub search { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -228,6 +244,8 @@ sub search { sub report { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my %myconfig = %main::myconfig; my $locale = $main::locale; @@ -340,6 +358,8 @@ sub report { sub report_for_todo_list { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my @report_params = qw(created_for subject body reference follow_up_date_from follow_up_date_to itime_from itime_to due_only all_users done not_done); @@ -379,6 +399,8 @@ sub report_for_todo_list { sub edit_access_rights { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -399,6 +421,8 @@ sub edit_access_rights { sub save_access_rights { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -427,6 +451,8 @@ sub continue { } sub save { + $main::auth->assert('productivity'); + if ($main::form->{save_nextsub}) { call_sub($main::form->{save_nextsub}); } else { diff --git a/bin/mozilla/login.pl b/bin/mozilla/login.pl index caf49c44e..7971c2da8 100644 --- a/bin/mozilla/login.pl +++ b/bin/mozilla/login.pl @@ -46,7 +46,7 @@ sub company_logo { $main::lxdebug->enter_sub(); my %myconfig = %main::myconfig; - $form->{todo_list} = create_todo_list('login_screen' => 1) if (!$form->{no_todo_list}); + $form->{todo_list} = create_todo_list('login_screen' => 1) if (!$form->{no_todo_list}) and ($main::auth->check_right($form->{login}, 'productivity')); $form->{stylesheet} = $myconfig{stylesheet}; $form->{title} = $::locale->text('kivitendo'); diff --git a/bin/mozilla/todo.pl b/bin/mozilla/todo.pl index c50d44d5e..9e5ce0197 100644 --- a/bin/mozilla/todo.pl +++ b/bin/mozilla/todo.pl @@ -34,6 +34,8 @@ use strict; sub create_todo_list { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my %params = @_; @@ -62,6 +64,8 @@ sub create_todo_list { sub show_todo_list { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + my $form = $main::form; my $locale = $main::locale; @@ -77,6 +81,8 @@ sub show_todo_list { sub todo_list_follow_ups { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + require "bin/mozilla/fu.pl"; my $content = report_for_todo_list(); @@ -89,6 +95,8 @@ sub todo_list_follow_ups { sub todo_list_overdue_sales_quotations { $main::lxdebug->enter_sub(); + $main::auth->assert('productivity'); + require "bin/mozilla/oe.pl"; my $content = report_for_todo_list(); diff --git a/doc/changelog b/doc/changelog index 653765338..99b035cdd 100644 --- a/doc/changelog +++ b/doc/changelog @@ -30,6 +30,14 @@ Größere neue Features: Kleinere neue Features und Detailverbesserungen: +- 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 + angezeigt, wenn man entsprechendes Recht hat. + Durch ein Upgrade wird allerdings bei schon bestehenden Benutzern automatisch die oben genannten beiden Rechte + gesetzt, so dass alle die Produktivität vorher nutzen durften auch weiterhin nutzen dürfen, bzw. so dass + bei allen, bei denen der Link auf das Admin-Menü angezeigt wurde, er auch weiterhin angezeigt wird. + - Stückliste für Lieferschein ausdrucken Stücklisten-Details (Haken bei Warenliste) für Erzeugnisse wurden seit 2009 (TEMPLATE_ARRAY Änderung) nicht mehr ausgedruckt, diff --git a/locale/de/all b/locale/de/all index a36239bd3..d1422f6b8 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1810,6 +1810,7 @@ $self->{texts} = { 'Show Salesman' => 'Verkäufer anzeigen', 'Show TODO list' => 'Aufgabenliste anzeigen', 'Show Transfer via default' => 'Ein- / Auslagern über Standardlagerplatz anzeigen', + 'Show administration link' => 'Link zur Administration anzeigen', 'Show by default' => 'Standardmäßig anzeigen', 'Show custom variable search inputs' => 'Suchoptionen für Benutzerdefinierte Variablen verstecken', 'Show delete button in purchase delivery orders?' => 'Soll der "Löschen"-Knopf bei Einkaufslieferscheinen angezeigt werden?', diff --git a/menu.ini b/menu.ini index a974868bc..f066039dc 100644 --- a/menu.ini +++ b/menu.ini @@ -476,6 +476,7 @@ type=receipt [Productivity] +ACCESS=productivity [Productivity--Show TODO list] module=todo.pl @@ -704,6 +705,7 @@ module=am.pl action=config [Program--Administration area] +ACCESS=display_admin_link module=admin.pl action=login diff --git a/sql/Pg-upgrade2/productivity_rights.pl b/sql/Pg-upgrade2/productivity_rights.pl new file mode 100644 index 000000000..4dd0270da --- /dev/null +++ b/sql/Pg-upgrade2/productivity_rights.pl @@ -0,0 +1,27 @@ +# @tag: productivity_rights +# @description: Setzt das Recht die Produktivität einzusehen und das Recht den Link zum Admin-Menü anzuzeigen wieder wie vorher +# @depends: release_3_0_0 +package SL::DBUpgrade2::productivity_rights; + +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}->{productivity} = 1 unless defined $group->{rights}->{productivity}; + $group->{rights}->{display_admin_link} = 1 unless defined $group->{rights}->{display_admin_link}; + $main::auth->save_group($group); + } + + return 1; +} # end run + +1; -- 2.20.1