Wiedervorlage für Beleg, nur sichtbar für eigenen Benutzer
authorJan Büren <jan@kivitendo-premium.de>
Tue, 22 Mar 2022 10:51:02 +0000 (11:51 +0100)
committerJan Büren <jan@kivitendo.de>
Tue, 22 Mar 2022 10:57:45 +0000 (11:57 +0100)
Die Rechte sind hier entweder zu strikt oder werden erst gar nicht
überprüft. Ferner sieht die ursprüngliche SQL-Abfrage leicht buggy aus.
Dieser Commit enthebelt behandelt Wiedervorlagen für Belege so als ob
diese sichtbar für alle Benutzer sind. Ferner wird die SQL-Abfrage
konkret auf die trans_id des Belegs angewendet

SL/FU.pm

index b1eaf00..822e31f 100644 (file)
--- a/SL/FU.pm
+++ b/SL/FU.pm
@@ -195,8 +195,10 @@ sub follow_ups {
   my @values_user   = ();
 
   if ($params{trans_id}) {
-    $where .= qq| AND EXISTS (SELECT * FROM follow_up_links ful
-                              WHERE (ful.follow_up_id = fu.id) AND (ful.trans_id = ?))|;
+    $where .= qq| AND fu.id IN (select follow_up_id from follow_up_links where trans_id = ?)|;
+   # $where .= qq| AND (ful.follow_up_id = fu.id) AND (ful.trans_id = ?))|;
+   # $where .= qq| AND EXISTS (SELECT * FROM follow_up_links ful
+   #                           WHERE (ful.follow_up_id = fu.id) AND (ful.trans_id = ?))|;
     push @values, conv_i($params{trans_id});
   }
 
@@ -251,7 +253,7 @@ sub follow_ups {
     push @values, conv_i($params{created_for});
   }
 
-  if ($params{all_users}) {
+  if ($params{all_users} || $params{trans_id}) {  # trans_id only for documents?
     $where_user = qq|OR (fu.created_by IN (SELECT DISTINCT what FROM follow_up_access WHERE who = ?))|;
     push @values_user, $employee_id;
   }