Add missing activity loggers on client area (#1060)

* Update Subuser

Adds user deleted notification, Adds logger for creating subusers.

* Update Tasks

* ...

* Update Schedule

* Update Files

* Update Database

* Move `reinstall` to proper array

* Add `:action` to deleted task log

* Updates

* Fix CreateSchedule

* Fix Editing/Saving

---------

Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
This commit is contained in:
Charles 2025-03-06 09:28:45 -05:00 committed by GitHub
parent 98ddb65509
commit a9e4495c91
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 99 additions and 9 deletions

View File

@ -2,6 +2,7 @@
namespace App\Filament\Components\Forms\Actions;
use App\Facades\Activity;
use App\Models\Database;
use App\Services\Databases\DatabasePasswordService;
use Exception;
@ -44,6 +45,11 @@ class RotateDatabasePasswordAction extends Action
$set('password', $database->password);
$set('jdbc', $database->jdbc);
Activity::event('server:database.rotate-password')
->subject($database)
->property('name', $database->database)
->log();
Notification::make()
->title(trans('admin/databasehost.rotated'))
->success()

View File

@ -2,6 +2,7 @@
namespace App\Filament\Server\Resources\DatabaseResource\Pages;
use App\Facades\Activity;
use App\Filament\Components\Forms\Actions\RotateDatabasePasswordAction;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
use App\Filament\Server\Resources\DatabaseResource;
@ -75,7 +76,13 @@ class ListDatabases extends ListRecords
->actions([
ViewAction::make()
->modalHeading(fn (Database $database) => 'Viewing ' . $database->database),
DeleteAction::make(),
DeleteAction::make()
->after(function (Database $database) {
Activity::event('server:database.delete')
->subject($database)
->property('name', $database->database)
->log();
}),
]);
}

View File

@ -53,6 +53,10 @@ class EditFiles extends Page
/** @var Server $server */
$server = Filament::getTenant();
Activity::event('server:file.read')
->property('file', $this->path)
->log();
return $form
->schema([
Section::make('Editing: ' . $this->path)

View File

@ -452,8 +452,8 @@ class ListFiles extends ListRecords
->setServer($server)
->createDirectory($data['name'], $this->path);
Activity::event('server:file.write')
->property('file', join_paths($this->path, $data['name']))
Activity::event('server:file.create-directory')
->property(['directory' => $this->path, 'name' => $data['name']])
->log();
})
->form([

View File

@ -3,8 +3,10 @@
namespace App\Filament\Server\Resources\ScheduleResource\Pages;
use App\Exceptions\DisplayException;
use App\Facades\Activity;
use App\Filament\Server\Resources\ScheduleResource;
use App\Helpers\Utilities;
use App\Models\Schedule;
use App\Models\Server;
use Carbon\Carbon;
use Exception;
@ -17,6 +19,16 @@ class CreateSchedule extends CreateRecord
protected static bool $canCreateAnother = false;
protected function afterCreate(): void
{
/** @var Schedule $schedule */
$schedule = $this->record;
Activity::event('server:schedule.create')
->property('name', $schedule->name)
->log();
}
protected function mutateFormDataBeforeCreate(array $data): array
{
if (!isset($data['server_id'])) {

View File

@ -2,7 +2,9 @@
namespace App\Filament\Server\Resources\ScheduleResource\Pages;
use App\Facades\Activity;
use App\Filament\Server\Resources\ScheduleResource;
use App\Models\Schedule;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
@ -10,10 +12,25 @@ class EditSchedule extends EditRecord
{
protected static string $resource = ScheduleResource::class;
protected function afterSave(): void
{
/** @var Schedule $schedule */
$schedule = $this->record;
Activity::event('server:schedule.update')
->property('name', $schedule->name)
->log();
}
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
Actions\DeleteAction::make()
->after(function ($record) {
Activity::event('server:schedule.delete')
->property('name', $record->name)
->log();
}),
$this->getSaveFormAction()->formId('form')->label('Save'),
$this->getCancelFormAction()->formId('form'),
];

View File

@ -2,6 +2,7 @@
namespace App\Filament\Server\Resources\ScheduleResource\Pages;
use App\Facades\Activity;
use App\Filament\Server\Resources\ScheduleResource;
use App\Models\Schedule;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
@ -44,14 +45,20 @@ class ListSchedules extends ListRecords
->actions([
ViewAction::make(),
EditAction::make(),
DeleteAction::make(),
DeleteAction::make()
->after(function (Schedule $schedule) {
Activity::event('server:schedule.delete')
->subject($schedule)
->property('name', $schedule->name)
->log();
}),
]);
}
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
Actions\CreateAction::make()->label('New Schedule'),
];
}

View File

@ -104,8 +104,28 @@ class TasksRelationManager extends RelationManager
$data['payload'] ??= '';
return $data;
})
->after(function ($data) {
/** @var Schedule $schedule */
$schedule = $this->getOwnerRecord();
Activity::event('server:task.update')
->subject($schedule)
->property(['name' => $schedule->name, 'action' => $data['action'], 'payload' => $data['payload']])
->log();
}),
DeleteAction::make()
->action(function (Task $task) {
/** @var Schedule $schedule */
$schedule = $this->getOwnerRecord();
$task->delete();
Activity::event('server:task.delete')
->subject($schedule)
->property(['name' => $schedule->name, 'action' => $task->action, 'payload' => $task->payload])
->log();
}),
DeleteAction::make(),
])
->headerActions([
CreateAction::make()

View File

@ -108,6 +108,10 @@ class UserResource extends Resource
$subuser = Subuser::query()->where('user_id', $user->id)->where('server_id', $server->id)->first();
$subuserDeletionService->handle($subuser, $server);
Notification::make()
->title('User Deleted!')
->success()
->send();
}),
EditAction::make()
->label('Edit User')

View File

@ -2,6 +2,7 @@
namespace App\Filament\Server\Resources\UserResource\Pages;
use App\Facades\Activity;
use App\Filament\Server\Resources\UserResource;
use App\Models\Permission;
use App\Models\Server;
@ -395,6 +396,12 @@ class ListUsers extends ListRecords
try {
$service->handle($server, $email, $permissions);
Activity::event('server:subuser.create')
->subject($data['email'])
->property([
'email' => $data['email'],
]);
Notification::make()
->title('User Invited!')
->success()

View File

@ -2,6 +2,7 @@
namespace App\Services\Databases;
use App\Facades\Activity;
use App\Models\Server;
use App\Models\Database;
use App\Helpers\Utilities;
@ -105,6 +106,11 @@ class DatabaseManagementService
$database->assignUserToDatabase($database->database, $database->username, $database->remote);
$database->flush();
Activity::event('server:database.create')
->subject($database)
->property('name', $database->database)
->log();
return $database;
});
}

View File

@ -39,7 +39,6 @@ return [
],
],
'server' => [
'reinstall' => 'Reinstalled server',
'console' => [
'command' => 'Executed "<b>:command</b>" on the server',
],
@ -103,11 +102,12 @@ return [
'task' => [
'create' => 'Created a new "<b>:action</b>" task for the <b>:name</b> schedule',
'update' => 'Updated the "<b>:action</b>" task for the <b>:name</b> schedule',
'delete' => 'Deleted a task for the <b>:name</b> schedule',
'delete' => 'Deleted the "<b>:action</b>" task for the <b>:name</b> schedule',
],
'settings' => [
'rename' => 'Renamed the server from "<b>:old</b>" to "<b>:new</b>"',
'description' => 'Changed the server description from "<b>:old</b>" to "<b>:new</b>"',
'reinstall' => 'Reinstalled server',
],
'startup' => [
'edit' => 'Changed the <b>:variable</b> variable from "<b>:old</b>" to "<b>:new</b>"',