diff --git a/app/Filament/Components/Forms/Actions/RotateDatabasePasswordAction.php b/app/Filament/Components/Forms/Actions/RotateDatabasePasswordAction.php
index 4992a6b64..5bcab7469 100644
--- a/app/Filament/Components/Forms/Actions/RotateDatabasePasswordAction.php
+++ b/app/Filament/Components/Forms/Actions/RotateDatabasePasswordAction.php
@@ -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()
diff --git a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php
index 10e52596c..f2c3a7004 100644
--- a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php
+++ b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php
@@ -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();
+ }),
]);
}
diff --git a/app/Filament/Server/Resources/FileResource/Pages/EditFiles.php b/app/Filament/Server/Resources/FileResource/Pages/EditFiles.php
index 662fa0b0e..21821f9f3 100644
--- a/app/Filament/Server/Resources/FileResource/Pages/EditFiles.php
+++ b/app/Filament/Server/Resources/FileResource/Pages/EditFiles.php
@@ -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)
diff --git a/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php b/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
index 3de864cc7..82f3cef8f 100644
--- a/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
+++ b/app/Filament/Server/Resources/FileResource/Pages/ListFiles.php
@@ -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([
diff --git a/app/Filament/Server/Resources/ScheduleResource/Pages/CreateSchedule.php b/app/Filament/Server/Resources/ScheduleResource/Pages/CreateSchedule.php
index 89f62a742..3594bb3c4 100644
--- a/app/Filament/Server/Resources/ScheduleResource/Pages/CreateSchedule.php
+++ b/app/Filament/Server/Resources/ScheduleResource/Pages/CreateSchedule.php
@@ -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'])) {
diff --git a/app/Filament/Server/Resources/ScheduleResource/Pages/EditSchedule.php b/app/Filament/Server/Resources/ScheduleResource/Pages/EditSchedule.php
index 2742dfc98..3014d0c20 100644
--- a/app/Filament/Server/Resources/ScheduleResource/Pages/EditSchedule.php
+++ b/app/Filament/Server/Resources/ScheduleResource/Pages/EditSchedule.php
@@ -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'),
];
diff --git a/app/Filament/Server/Resources/ScheduleResource/Pages/ListSchedules.php b/app/Filament/Server/Resources/ScheduleResource/Pages/ListSchedules.php
index 73f6d48e0..5aca82b53 100644
--- a/app/Filament/Server/Resources/ScheduleResource/Pages/ListSchedules.php
+++ b/app/Filament/Server/Resources/ScheduleResource/Pages/ListSchedules.php
@@ -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'),
];
}
diff --git a/app/Filament/Server/Resources/ScheduleResource/RelationManagers/TasksRelationManager.php b/app/Filament/Server/Resources/ScheduleResource/RelationManagers/TasksRelationManager.php
index a99888b75..5b7b2ffe4 100644
--- a/app/Filament/Server/Resources/ScheduleResource/RelationManagers/TasksRelationManager.php
+++ b/app/Filament/Server/Resources/ScheduleResource/RelationManagers/TasksRelationManager.php
@@ -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()
diff --git a/app/Filament/Server/Resources/UserResource.php b/app/Filament/Server/Resources/UserResource.php
index 345a6a433..8d810d88e 100644
--- a/app/Filament/Server/Resources/UserResource.php
+++ b/app/Filament/Server/Resources/UserResource.php
@@ -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')
diff --git a/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php b/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php
index c7812f256..b062e6d2c 100644
--- a/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php
+++ b/app/Filament/Server/Resources/UserResource/Pages/ListUsers.php
@@ -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()
diff --git a/app/Services/Databases/DatabaseManagementService.php b/app/Services/Databases/DatabaseManagementService.php
index feef10817..88146f709 100644
--- a/app/Services/Databases/DatabaseManagementService.php
+++ b/app/Services/Databases/DatabaseManagementService.php
@@ -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;
});
}
diff --git a/lang/en/activity.php b/lang/en/activity.php
index 0d921c8a3..d34bdcefe 100644
--- a/lang/en/activity.php
+++ b/lang/en/activity.php
@@ -39,7 +39,6 @@ return [
],
],
'server' => [
- 'reinstall' => 'Reinstalled server',
'console' => [
'command' => 'Executed ":command" on the server',
],
@@ -103,11 +102,12 @@ return [
'task' => [
'create' => 'Created a new ":action" task for the :name schedule',
'update' => 'Updated the ":action" task for the :name schedule',
- 'delete' => 'Deleted a task for the :name schedule',
+ 'delete' => 'Deleted the ":action" task for the :name schedule',
],
'settings' => [
'rename' => 'Renamed the server from ":old" to ":new"',
'description' => 'Changed the server description from ":old" to ":new"',
+ 'reinstall' => 'Reinstalled server',
],
'startup' => [
'edit' => 'Changed the :variable variable from ":old" to ":new"',