X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/dbd4281ae80a5be2d631a0c8bd9e8dc29546c92e..refs/pull/3918/head:/app/Actions/ActivityLogger.php diff --git a/app/Actions/ActivityLogger.php b/app/Actions/ActivityLogger.php index 870e7f96d..6ece47fd5 100644 --- a/app/Actions/ActivityLogger.php +++ b/app/Actions/ActivityLogger.php @@ -2,21 +2,15 @@ namespace BookStack\Actions; -use BookStack\Auth\Permissions\PermissionService; use BookStack\Entities\Models\Entity; +use BookStack\Facades\Theme; use BookStack\Interfaces\Loggable; +use BookStack\Theming\ThemeEvents; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Log; class ActivityLogger { - protected $permissionService; - - public function __construct(PermissionService $permissionService) - { - $this->permissionService = $permissionService; - } - /** * Add a generic activity event to the database. * @@ -35,8 +29,10 @@ class ActivityLogger } $activity->save(); + $this->setNotification($type); $this->dispatchWebhooks($type, $detail); + Theme::dispatch(ThemeEvents::ACTIVITY_LOGGED, $type, $detail); } /** @@ -44,12 +40,10 @@ class ActivityLogger */ protected function newActivityForUser(string $type): Activity { - $ip = request()->ip() ?? ''; - return (new Activity())->forceFill([ 'type' => strtolower($type), 'user_id' => user()->id, - 'ip' => config('app.env') === 'demo' ? '127.0.0.1' : $ip, + 'ip' => IpFormatter::fromCurrentRequest()->format(), ]); } @@ -85,7 +79,7 @@ class ActivityLogger protected function dispatchWebhooks(string $type, $detail): void { $webhooks = Webhook::query() - ->whereHas('trackedEvents', function(Builder $query) use ($type) { + ->whereHas('trackedEvents', function (Builder $query) use ($type) { $query->where('event', '=', $type) ->orWhere('event', '=', 'all'); })