Skip to content

Commit 291c652

Browse files
committed
Update audit design
1 parent ccecaa6 commit 291c652

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

app/Http/Controllers/Api/Client/Servers/FileController.php

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,8 @@ public function download(GetFileContentsRequest $request, Server $server)
146146
public function write(WriteFileContentRequest $request, Server $server): JsonResponse
147147
{
148148
$server->audit(AuditLog::ACTION_SERVER_FILESYSTEM_WRITE, function (AuditLog $audit, Server $server) use ($request) {
149-
$audit->metadata = [
150-
'file' => $request->get('file'),
151-
'sub_action' => 'write_content',
152-
];
149+
$audit->subaction = 'write_content';
150+
$audit->metadata = ['file' => $request->get('file')];
153151

154152
$this->fileRepository
155153
->setServer($server)
@@ -171,10 +169,8 @@ public function write(WriteFileContentRequest $request, Server $server): JsonRes
171169
public function create(CreateFolderRequest $request, Server $server): JsonResponse
172170
{
173171
$server->audit(AuditLog::ACTION_SERVER_FILESYSTEM_WRITE, function (AuditLog $audit, Server $server) use ($request) {
174-
$audit->metadata = [
175-
'file' => $request->input('root', '/') . $request->input('name'),
176-
'sub_action' => 'create_folder',
177-
];
172+
$audit->subaction = 'create_folder';
173+
$audit->metadata = ['file' => $request->input('root', '/') . $request->input('name')];
178174

179175
$this->fileRepository
180176
->setServer($server)
@@ -218,10 +214,9 @@ public function rename(RenameFileRequest $request, Server $server): JsonResponse
218214
public function copy(CopyFileRequest $request, Server $server): JsonResponse
219215
{
220216
$server->audit(AuditLog::ACTION_SERVER_FILESYSTEM_WRITE, function (AuditLog $audit, Server $server) use ($request) {
221-
$audit->metadata = [
222-
'file' => $request->input('location'),
223-
'sub_action' => 'copy_file',
224-
];
217+
$audit->subaction = 'copy_file';
218+
$audit->metadata = ['file' => $request->input('location')];
219+
225220
$this->fileRepository
226221
->setServer($server)
227222
->copyFile($request->input('location'));

app/Models/AuditLog.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* @property int|null $user_id
1414
* @property int|null $server_id
1515
* @property string $action
16+
* @property string|null $subaction
1617
* @property array $device
1718
* @property array $metadata
1819
* @property \Carbon\CarbonImmutable $created_at
@@ -49,7 +50,8 @@ class AuditLog extends Model
4950
*/
5051
public static $validationRules = [
5152
'uuid' => 'required|uuid',
52-
'action' => 'required|string',
53+
'action' => 'required|string|max:191',
54+
'subaction' => 'nullable|string|max:191',
5355
'device' => 'array',
5456
'device.ip_address' => 'ip',
5557
'device.user_agent' => 'string',

database/migrations/2021_01_17_102401_create_audit_logs_table.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,16 @@ public function up()
1717
$table->id();
1818
$table->char('uuid', 36);
1919
$table->boolean('is_system')->default(false);
20-
$table->bigInteger('user_id')->nullable();
21-
$table->bigInteger('server_id')->nullable();
20+
$table->unsignedInteger('user_id')->nullable();
21+
$table->unsignedInteger('server_id')->nullable();
2222
$table->string('action');
23+
$table->string('subaction')->nullable();
2324
$table->json('device');
2425
$table->json('metadata');
2526
$table->timestamp('created_at', 0);
27+
28+
$table->foreign('user_id')->references('id')->on('users')->onDelete('set null');
29+
$table->foreign('server_id')->references('id')->on('servers')->onDelete('cascade');
2630
});
2731
}
2832

0 commit comments

Comments
 (0)