diff --git a/README.md b/README.md index 9bcac29..7d324b8 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Laravel logger is an activity event logger for your Laravel or Lumen application |Records activity User Agent| |Records activity Browser Language| |Records activity referrer| +|Customizable activity model| |Activity panel dashboard| |Individual activity drilldown report dashboard| |Activity Drilldown looks up Id Address meta information| @@ -160,6 +161,7 @@ LARAVEL_LOGGER_ROLES_ENABLED=true LARAVEL_LOGGER_ROLES_MIDDLWARE=role:admin LARAVEL_LOGGER_MIDDLEWARE_ENABLED=true LARAVEL_LOGGER_MIDDLEWARE_EXCEPT= +LARAVEL_LOGGER_ACTIVITY_MODEL=jeremykenedy\LaravelLogger\App\Models\Activity LARAVEL_LOGGER_USER_MODEL=App\User LARAVEL_LOGGER_USER_ID_FIELD=id LARAVEL_LOGGER_DISABLE_ROUTES=false diff --git a/src/App/Http/Controllers/LaravelLoggerController.php b/src/App/Http/Controllers/LaravelLoggerController.php index e73555c..92c2f0a 100644 --- a/src/App/Http/Controllers/LaravelLoggerController.php +++ b/src/App/Http/Controllers/LaravelLoggerController.php @@ -10,7 +10,6 @@ use Illuminate\Routing\Controller as BaseController; use jeremykenedy\LaravelLogger\App\Http\Traits\IpAddressDetails; use jeremykenedy\LaravelLogger\App\Http\Traits\UserAgentDetails; -use jeremykenedy\LaravelLogger\App\Models\Activity; class LaravelLoggerController extends BaseController { @@ -69,14 +68,14 @@ private function mapAdditionalDetails($collectionItems) public function showAccessLog(Request $request) { if (config('LaravelLogger.loggerPaginationEnabled')) { - $activities = Activity::orderBy('created_at', 'desc'); + $activities = config('laravel-logger.defaultActivityModel')::orderBy('created_at', 'desc'); if (config('LaravelLogger.enableSearch')) { $activities = $this->searchActivityLog($activities, $request); } $activities = $activities->paginate(config('LaravelLogger.loggerPaginationPerPage')); $totalActivities = $activities->total(); } else { - $activities = Activity::orderBy('created_at', 'desc'); + $activities = config('laravel-logger.defaultActivityModel')::orderBy('created_at', 'desc'); if (config('LaravelLogger.enableSearch')) { $activities = $this->searchActivityLog($activities, $request); @@ -108,7 +107,7 @@ public function showAccessLog(Request $request) */ public function showAccessLogEntry(Request $request, $id) { - $activity = Activity::findOrFail($id); + $activity = config('laravel-logger.defaultActivityModel')::findOrFail($id); $userDetails = config('LaravelLogger.defaultUserModel')::find($activity->userId); $userAgentDetails = UserAgentDetails::details($activity->userAgent); @@ -118,12 +117,12 @@ public function showAccessLogEntry(Request $request, $id) $timePassed = $eventTime->diffForHumans(); if (config('LaravelLogger.loggerPaginationEnabled')) { - $userActivities = Activity::where('userId', $activity->userId) + $userActivities = config('laravel-logger.defaultActivityModel')::where('userId', $activity->userId) ->orderBy('created_at', 'desc') ->paginate(config('LaravelLogger.loggerPaginationPerPage')); $totalUserActivities = $userActivities->total(); } else { - $userActivities = Activity::where('userId', $activity->userId) + $userActivities = config('laravel-logger.defaultActivityModel')::where('userId', $activity->userId) ->orderBy('created_at', 'desc') ->get(); $totalUserActivities = $userActivities->count(); @@ -155,7 +154,7 @@ public function showAccessLogEntry(Request $request, $id) */ public function clearActivityLog(Request $request) { - $activities = Activity::all(); + $activities = config('laravel-logger.defaultActivityModel')::all(); foreach ($activities as $activity) { $activity->delete(); } @@ -171,12 +170,12 @@ public function clearActivityLog(Request $request) public function showClearedActivityLog() { if (config('LaravelLogger.loggerPaginationEnabled')) { - $activities = Activity::onlyTrashed() + $activities = config('laravel-logger.defaultActivityModel')::onlyTrashed() ->orderBy('created_at', 'desc') ->paginate(config('LaravelLogger.loggerPaginationPerPage')); $totalActivities = $activities->total(); } else { - $activities = Activity::onlyTrashed() + $activities = config('laravel-logger.defaultActivityModel')::onlyTrashed() ->orderBy('created_at', 'desc') ->get(); $totalActivities = $activities->count(); @@ -233,7 +232,7 @@ public function showClearedAccessLogEntry(Request $request, $id) */ private static function getClearedActvity($id) { - $activity = Activity::onlyTrashed()->where('id', $id)->get(); + $activity = config('laravel-logger.defaultActivityModel')::onlyTrashed()->where('id', $id)->get(); if (count($activity) != 1) { return abort(404); } @@ -250,7 +249,7 @@ private static function getClearedActvity($id) */ public function destroyActivityLog(Request $request) { - $activities = Activity::onlyTrashed()->get(); + $activities = config('laravel-logger.defaultActivityModel')::onlyTrashed()->get(); foreach ($activities as $activity) { $activity->forceDelete(); } @@ -267,7 +266,7 @@ public function destroyActivityLog(Request $request) */ public function restoreClearedActivityLog(Request $request) { - $activities = Activity::onlyTrashed()->get(); + $activities = config('laravel-logger.defaultActivityModel')::onlyTrashed()->get(); foreach ($activities as $activity) { $activity->restore(); } diff --git a/src/App/Http/Traits/ActivityLogger.php b/src/App/Http/Traits/ActivityLogger.php index 8d8832d..97323bc 100644 --- a/src/App/Http/Traits/ActivityLogger.php +++ b/src/App/Http/Traits/ActivityLogger.php @@ -7,7 +7,6 @@ use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Validator; use Jaybizzle\LaravelCrawlerDetect\Facades\LaravelCrawlerDetect as Crawler; -use jeremykenedy\LaravelLogger\App\Models\Activity; trait ActivityLogger { @@ -73,7 +72,7 @@ public static function activity($description = null) ]; // Validation Instance - $validator = Validator::make($data, Activity::rules()); + $validator = Validator::make($data, config('laravel-logger.defaultActivityModel')::rules()); if ($validator->fails()) { $errors = self::prepareErrorMessage($validator->errors(), $data); if (config('LaravelLogger.logDBActivityLogFailuresToFile')) { @@ -93,7 +92,7 @@ public static function activity($description = null) */ private static function storeActivity($data) { - Activity::create([ + config('laravel-logger.defaultActivityModel')::create([ 'description' => $data['description'], 'userType' => $data['userType'], 'userId' => $data['userId'], diff --git a/src/config/laravel-logger.php b/src/config/laravel-logger.php index e3c6dbf..fc23259 100644 --- a/src/config/laravel-logger.php +++ b/src/config/laravel-logger.php @@ -59,11 +59,12 @@ /* |-------------------------------------------------------------------------- - | Laravel Default User Model + | Laravel Default Models |-------------------------------------------------------------------------- */ - 'defaultUserModel' => env('LARAVEL_LOGGER_USER_MODEL', 'App\User'), + 'defaultActivityModel' => env('LARAVEL_LOGGER_ACTIVITY_MODEL', 'jeremykenedy\LaravelLogger\App\Models\Activity'), + 'defaultUserModel' => env('LARAVEL_LOGGER_USER_MODEL', 'App\User'), /* |--------------------------------------------------------------------------