Merge branch 'master' of github.com:kivitendo/kivitendo-erp
authorJan Büren <jan@kivitendo-premium.de>
Mon, 10 Jun 2013 11:37:41 +0000 (13:37 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Mon, 10 Jun 2013 11:37:41 +0000 (13:37 +0200)
SL/Auth.pm
bin/mozilla/fu.pl
bin/mozilla/login.pl
bin/mozilla/todo.pl
doc/changelog
doc/dokumentation.xml
doc/html/ch02s06.html
doc/kivitendo-Dokumentation.pdf
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 759ff0f..c89aa6d 100644 (file)
@@ -676,7 +676,7 @@ Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
   Deny from All
 &lt;/DirectoryMatch&gt;</programlisting>
 
-          <para>Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für
+          <para>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
           die maximale Größe eines Requests. Diese sollte wie folgt
           hochgesetzt werden:</para>
 
index 6c9ca53..3e824da 100644 (file)
@@ -70,7 +70,7 @@ Alias       /url/for/kivitendo-erp/          /path/to/kivitendo-erp/
 &lt;DirectoryMatch /path/to/kivitendo-erp/users&gt;
   Order Deny,Allow
   Deny from All
-&lt;/DirectoryMatch&gt;</pre><p>Seit mod_fcgid-Version 2.6.3 gelten sehr kleine Grenzen für
+&lt;/DirectoryMatch&gt;</pre><p>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
           die maximale Größe eines Requests. Diese sollte wie folgt
           hochgesetzt werden:</p><pre class="programlisting">FcgidMaxRequestLen 10485760</pre><p>Das ganze sollte dann so aussehen:</p><pre class="programlisting">AddHandler fcgid-script .fpl
 AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl
index 52ade6e..3b0d4d1 100644 (file)
Binary files a/doc/kivitendo-Dokumentation.pdf and b/doc/kivitendo-Dokumentation.pdf differ
index d15ba81..4d3cbce 100755 (executable)
@@ -1812,6 +1812,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;