| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace BookStack\Http\Controllers; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use BookStack\Actions\Activity; | 
					
						
							|  |  |  | use Illuminate\Http\Request; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\DB; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AuditLogController extends Controller | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function index(Request $request) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->checkPermission('settings-manage'); | 
					
						
							|  |  |  |         $this->checkPermission('users-manage'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $listDetails = [ | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'order'     => $request->get('order', 'desc'), | 
					
						
							|  |  |  |             'event'     => $request->get('event', ''), | 
					
						
							|  |  |  |             'sort'      => $request->get('sort', 'created_at'), | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |             'date_from' => $request->get('date_from', ''), | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'date_to'   => $request->get('date_to', ''), | 
					
						
							|  |  |  |             'user'      => $request->get('user', ''), | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |         ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $query = Activity::query() | 
					
						
							| 
									
										
										
										
											2020-11-06 20:54:39 +08:00
										 |  |  |             ->with([ | 
					
						
							|  |  |  |                 'entity' => function ($query) { | 
					
						
							|  |  |  |                     $query->withTrashed(); | 
					
						
							|  |  |  |                 }, | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |                 'user', | 
					
						
							| 
									
										
										
										
											2020-11-06 20:54:39 +08:00
										 |  |  |             ]) | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |             ->orderBy($listDetails['sort'], $listDetails['order']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($listDetails['event']) { | 
					
						
							| 
									
										
										
										
											2020-11-08 08:03:19 +08:00
										 |  |  |             $query->where('type', '=', $listDetails['event']); | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-03-21 23:04:32 +08:00
										 |  |  |         if ($listDetails['user']) { | 
					
						
							|  |  |  |             $query->where('user_id', '=', $listDetails['user']); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($listDetails['date_from']) { | 
					
						
							|  |  |  |             $query->where('created_at', '>=', $listDetails['date_from']); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if ($listDetails['date_to']) { | 
					
						
							|  |  |  |             $query->where('created_at', '<=', $listDetails['date_to']); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $activities = $query->paginate(100); | 
					
						
							|  |  |  |         $activities->appends($listDetails); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-08 08:03:19 +08:00
										 |  |  |         $types = DB::table('activities')->select('type')->distinct()->pluck('type'); | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |         $this->setPageTitle(trans('settings.audit')); | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |         return view('settings.audit', [ | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |             'activities'    => $activities, | 
					
						
							|  |  |  |             'listDetails'   => $listDetails, | 
					
						
							| 
									
										
										
										
											2020-11-08 08:03:19 +08:00
										 |  |  |             'activityTypes' => $types, | 
					
						
							| 
									
										
										
										
											2020-09-19 19:06:45 +08:00
										 |  |  |         ]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |