1
0
Fork 0
mirror of synced 2024-06-26 18:20:43 +12:00
appwrite/app/workers/audits.php

63 lines
1.5 KiB
PHP
Raw Normal View History

2019-05-09 18:54:39 +12:00
<?php
2022-04-04 18:30:07 +12:00
use Appwrite\Event\Event;
use Appwrite\Resque\Worker;
2020-05-10 04:39:50 +12:00
use Utopia\Audit\Audit;
use Utopia\CLI\Console;
2022-04-04 18:30:07 +12:00
use Utopia\Database\Document;
2020-05-10 04:39:50 +12:00
2022-05-10 00:36:29 +12:00
require_once __DIR__ . '/../init.php';
2019-05-09 18:54:39 +12:00
2021-01-15 19:02:48 +13:00
Console::title('Audits V1 Worker');
2021-09-01 21:13:23 +12:00
Console::success(APP_NAME . ' audits worker v1 has started');
class AuditsV1 extends Worker
2019-05-09 18:54:39 +12:00
{
2022-05-10 00:36:29 +12:00
public function getName(): string
{
return "audits";
}
public function init(): void
2019-05-09 18:54:39 +12:00
{
}
public function run(): void
2019-05-09 18:54:39 +12:00
{
2022-04-04 18:30:07 +12:00
$events = $this->args['events'];
$payload = $this->args['payload'];
$mode = $this->args['mode'];
$resource = $this->args['resource'];
$userAgent = $this->args['userAgent'];
$ip = $this->args['ip'];
2022-04-04 18:30:07 +12:00
$user = new Document($this->args['user']);
$project = new Document($this->args['project']);
$userName = $user->getAttribute('name', '');
$userEmail = $user->getAttribute('email', '');
$dbForProject = $this->getProjectDB($project->getId());
$audit = new Audit($dbForProject);
2022-05-10 00:36:29 +12:00
$audit->log(
userId: $user->getId(),
// Pass first, most verbose event pattern
event: $events[0],
resource: $resource,
userAgent: $userAgent,
ip: $ip,
location: '',
data: [
'userName' => $userName,
'userEmail' => $userEmail,
'mode' => $mode,
'data' => $payload,
]
);
2019-05-09 18:54:39 +12:00
}
public function shutdown(): void
2019-05-09 18:54:39 +12:00
{
}
2021-09-01 21:13:23 +12:00
}