Add lots of audit logs.

This commit is contained in:
James Cole 2023-12-29 08:19:04 +01:00
parent ec43d10e35
commit 6381d04e2b
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
12 changed files with 32 additions and 3 deletions

View File

@ -32,6 +32,7 @@ use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use FireflyIII\Transformers\WebhookAttemptTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\Log;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
use League\Fractal\Resource\Item;
@ -68,7 +69,7 @@ class AttemptController extends Controller
if ($message->webhook_id !== $webhook->id) {
throw new FireflyException('200040: Webhook and webhook message are no match');
}
Log::channel('audit')->info(sprintf('User lists webhook attempts of webhook #%d and message #%d.', $webhook->id, $message->id));
$manager = $this->getManager();
$pageSize = $this->parameters->get('limit');
$collection = $this->repository->getAttempts($message);

View File

@ -31,6 +31,7 @@ use FireflyIII\Models\WebhookAttempt;
use FireflyIII\Models\WebhookMessage;
use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
/**
* Class DestroyController
@ -60,6 +61,7 @@ class DestroyController extends Controller
*/
public function destroy(Webhook $webhook): JsonResponse
{
Log::channel('audit')->info(sprintf('User destroys webhook #%d.', $webhook->id));
$this->repository->destroy($webhook);
app('preferences')->mark();
@ -82,6 +84,7 @@ class DestroyController extends Controller
if ($attempt->webhook_message_id !== $message->id) {
throw new FireflyException('200041: Webhook message and webhook attempt are no match');
}
Log::channel('audit')->info(sprintf('User destroys webhook #%d, message #%d, attempt #%d.', $webhook->id, $message->id, $attempt->id));
$this->repository->destroyAttempt($attempt);
app('preferences')->mark();
@ -99,6 +102,7 @@ class DestroyController extends Controller
*/
public function destroyMessage(Webhook $webhook, WebhookMessage $message): JsonResponse
{
Log::channel('audit')->info(sprintf('User destroys webhook #%d, message #%d.', $webhook->id, $message->id));
if ($message->webhook_id !== $webhook->id) {
throw new FireflyException('200040: Webhook and webhook message are no match');
}

View File

@ -31,6 +31,7 @@ use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use FireflyIII\Transformers\WebhookMessageTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\Log;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
use League\Fractal\Resource\Item;
@ -64,6 +65,7 @@ class MessageController extends Controller
*/
public function index(Webhook $webhook): JsonResponse
{
Log::channel('audit')->info(sprintf('User views messages of webhook #%d.', $webhook->id));
$manager = $this->getManager();
$pageSize = $this->parameters->get('limit');
$collection = $this->repository->getMessages($webhook);
@ -98,6 +100,7 @@ class MessageController extends Controller
if ($message->webhook_id !== $webhook->id) {
throw new FireflyException('200040: Webhook and webhook message are no match');
}
Log::channel('audit')->info(sprintf('User views message #%d of webhook #%d.', $message->id, $webhook->id));
$manager = $this->getManager();

View File

@ -34,6 +34,7 @@ use FireflyIII\Transformers\WebhookTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Resource\Collection as FractalCollection;
use League\Fractal\Resource\Item;
@ -69,6 +70,7 @@ class ShowController extends Controller
*/
public function index(): JsonResponse
{
Log::channel('audit')->info('User views all webhooks.');
$manager = $this->getManager();
$collection = $this->repository->all();
$pageSize = $this->parameters->get('limit');
@ -97,6 +99,7 @@ class ShowController extends Controller
*/
public function show(Webhook $webhook): JsonResponse
{
Log::channel('audit')->info(sprintf('User views webhook #%d.', $webhook->id));
$manager = $this->getManager();
/** @var WebhookTransformer $transformer */
@ -116,7 +119,7 @@ class ShowController extends Controller
public function triggerTransaction(Webhook $webhook, TransactionGroup $group): JsonResponse
{
app('log')->debug(sprintf('Now in triggerTransaction(%d, %d)', $webhook->id, $group->id));
Log::channel('audit')->info(sprintf('User triggers webhook #%d on transaction group #%d.', $webhook->id, $group->id));
/** @var MessageGeneratorInterface $engine */
$engine = app(MessageGeneratorInterface::class);
$engine->setUser(auth()->user());

View File

@ -28,6 +28,7 @@ use FireflyIII\Api\V1\Requests\Models\Webhook\CreateRequest;
use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use FireflyIII\Transformers\WebhookTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use League\Fractal\Resource\Item;
/**
@ -61,6 +62,8 @@ class StoreController extends Controller
$webhook = $this->repository->store($data);
$manager = $this->getManager();
Log::channel('audit')->info('User stores new webhook', $data);
/** @var WebhookTransformer $transformer */
$transformer = app(WebhookTransformer::class);
$transformer->setParameters($this->parameters);

View File

@ -28,6 +28,7 @@ use FireflyIII\Jobs\SendWebhookMessage;
use FireflyIII\Models\Webhook;
use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
/**
* Class SubmitController
@ -55,6 +56,7 @@ class SubmitController extends Controller
*/
public function submit(Webhook $webhook): JsonResponse
{
Log::channel('audit')->info(sprintf('User submits webhook #%d', $webhook->id));
// count messages that can be sent.
$messages = $this->repository->getReadyMessages($webhook);
if (0 === $messages->count()) {

View File

@ -29,6 +29,7 @@ use FireflyIII\Models\Webhook;
use FireflyIII\Repositories\Webhook\WebhookRepositoryInterface;
use FireflyIII\Transformers\WebhookTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use League\Fractal\Resource\Item;
/**
@ -61,6 +62,8 @@ class UpdateController extends Controller
$webhook = $this->repository->update($webhook, $data);
$manager = $this->getManager();
Log::channel('audit')->info(sprintf('User updates webhook #%d', $webhook->id), $data);
/** @var WebhookTransformer $transformer */
$transformer = app(WebhookTransformer::class);
$transformer->setParameters($this->parameters);

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Http\Controllers\Webhooks;
use FireflyIII\Http\Controllers\Controller;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Log;
use Illuminate\View\View;
/**
@ -57,6 +58,7 @@ class CreateController extends Controller
*/
public function index()
{
Log::channel('audit')->info('User visits webhook create page.');
$previousUrl = $this->rememberPreviousUrl('webhooks.create.url');
return view('webhooks.create', compact('previousUrl'));

View File

@ -28,6 +28,7 @@ use FireflyIII\Models\Webhook;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Log;
/**
* Class DeleteController
@ -61,6 +62,7 @@ class DeleteController extends Controller
*/
public function index(Webhook $webhook)
{
Log::channel('audit')->info('User visits webhook delete page.');
$subTitle = (string)trans('firefly.delete_webhook', ['title' => $webhook->title]);
$this->rememberPreviousUrl('webhooks.delete.url');

View File

@ -28,6 +28,7 @@ use FireflyIII\Models\Webhook;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Log;
/**
* Class EditController
@ -60,8 +61,9 @@ class EditController extends Controller
*/
public function index(Webhook $webhook)
{
Log::channel('audit')->info('User visits webhook edit page.');
$subTitle = (string)trans('firefly.edit_webhook', ['title' => $webhook->title]);
$this->rememberPreviousUrl('webhooks.delete.url');
$this->rememberPreviousUrl('webhooks.edit.url');
return view('webhooks.edit', compact('webhook', 'subTitle'));
}

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Http\Controllers\Webhooks;
use FireflyIII\Http\Controllers\Controller;
use Illuminate\Contracts\View\Factory;
use Illuminate\Support\Facades\Log;
use Illuminate\View\View;
/**
@ -53,6 +54,7 @@ class IndexController extends Controller
*/
public function index()
{
Log::channel('audit')->info('User visits webhook index page.');
return view('webhooks.index');
}
}

View File

@ -28,6 +28,7 @@ use FireflyIII\Models\Webhook;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Log;
/**
* Class ShowController
@ -60,6 +61,7 @@ class ShowController extends Controller
*/
public function index(Webhook $webhook)
{
Log::channel('audit')->info(sprintf('User visits webhook #%d page.', $webhook->id));
$subTitle = (string)trans('firefly.show_webhook', ['title' => $webhook->title]);
return view('webhooks.show', compact('webhook', 'subTitle'));