Zeiterfassung: Eingabe: Einträge f. andere Mitarbeiter erlauben, wenn berechtigt
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Thu, 6 May 2021 22:01:47 +0000 (00:01 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 7 May 2021 09:03:57 +0000 (11:03 +0200)
Hier reicht es, beim init_time_recording den Mitarbeiter für neue Einträge
auf den akuellten Bearbeiter zu setzen, wenn kein anderer Mitarbeiter aus der
Form/Maske kommt.
Die Rechte-Prüfung wird dann ohnehin im run_before-Hook 'check_auth_edit'
gemacht.

SL/Controller/TimeRecording.pm

index d326522..5c442cc 100644 (file)
@@ -184,10 +184,10 @@ sub init_time_recording {
   }
 
   # do not overwrite staff member if you do not have the right
-  delete $attributes{staff_member_id} if !$_[0]->can_edit_all;
-  $attributes{staff_member_id} = SL::DB::Manager::Employee->current->id if $is_new;
+  delete $attributes{staff_member_id}                                     if !$_[0]->can_edit_all;
+  $attributes{staff_member_id} ||= SL::DB::Manager::Employee->current->id if $is_new;
 
-  $attributes{employee_id}     = SL::DB::Manager::Employee->current->id;
+  $attributes{employee_id}       = SL::DB::Manager::Employee->current->id;
 
   $time_recording->assign_attributes(%attributes);