PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.1.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.1.0
2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 1.41 All 42 releases
← All changes | app/Http/Controllers/ReportController.php +15 -4 2.0.122.1.0 View file →
@@ -99,10 +99,21 @@
99 99
100 100 return $boardId;
101 101 }
102 102
103 + /**
104 + * Returns the timesheet report for accessible boards when Pro is active.
105 + * Preserves logs for missing users with a deleted-user placeholder.
106 + */
103 107 public function getTimeSheetReport(Request $request)
104 108 {
109 + if (!defined('FLUENT_BOARDS_PRO_VERSION')) {
110 + return $this->sendError(
111 + esc_html__('This is a pro feature', 'fluent-boards'),
112 + 403
113 + );
114 + }
115 +
105 116 // Sanitize date inputs - validate they are valid date strings
106 117 $startDate = $request->getSafe('start_date', 'sanitize_text_field');
107 118 $endDate = $request->getSafe('end_date', 'sanitize_text_field');
108 119
@@ -169,12 +180,12 @@
169 180 'working_minutes' => $time['working_minutes'],
170 181 'completed_at' => $time['completed_at'],
171 182 'message' => $time['message'],
172 183 'user' => [
173 - 'ID' => $user->ID,
174 - 'name' => $user->display_name,
175 - 'avatar' => fluent_boards_user_avatar($user->user_email),
176 - 'email' => $user->user_email
184 + 'ID' => $user ? $user->ID : (int) $time->user_id,
185 + 'name' => $user ? $user->display_name : __('Deleted user', 'fluent-boards'),
186 + 'avatar' => $user ? fluent_boards_user_avatar($user->user_email) : '',
187 + 'email' => $user ? $user->user_email : ''
177 188 ]
178 189 ];
179 190
180 191 }