Recht für Anzeige der Produktivität
authorNiclas Zimmermann <niclas@kivitendo-premium.de>
Fri, 7 Jun 2013 11:38:06 +0000 (13:38 +0200)
committerNiclas Zimmermann <niclas@kivitendo-premium.de>
Mon, 10 Jun 2013 11:20:15 +0000 (13:20 +0200)
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
bin/mozilla/fu.pl
bin/mozilla/login.pl
bin/mozilla/todo.pl
doc/changelog
locale/de/all
menu.ini
sql/Pg-upgrade2/productivity_rights.pl [new file with mode: 0644]

index 3ef2660..23a9771 100644 (file)
@@ -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;
index 3b5adb2..ef80a73 100644 (file)
@@ -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 {
index caf49c4..7971c2d 100644 (file)
@@ -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');
index c50d44d..9e5ce01 100644 (file)
@@ -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();
index 6537653..99b035c 100644 (file)
@@ -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,
index a36239b..d1422f6 100755 (executable)
@@ -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&auml;&szlig;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?',
index a974868..f066039 100644 (file)
--- 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 (file)
index 0000000..4dd0270
--- /dev/null
@@ -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;