2019-05-09 18:54:39 +12:00
|
|
|
<?php
|
|
|
|
|
2022-04-04 18:30:07 +12:00
|
|
|
use Appwrite\Event\Event;
|
2021-06-12 02:20:18 +12:00
|
|
|
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');
|
2019-12-29 22:47:55 +13:00
|
|
|
|
2021-06-12 02:20:18 +12:00
|
|
|
class AuditsV1 extends Worker
|
2019-05-09 18:54:39 +12:00
|
|
|
{
|
2022-05-10 00:36:29 +12:00
|
|
|
public function getName(): string
|
|
|
|
{
|
2021-11-24 03:24:25 +13:00
|
|
|
return "audits";
|
|
|
|
}
|
|
|
|
|
2021-06-12 02:20:18 +12:00
|
|
|
public function init(): void
|
2019-05-09 18:54:39 +12:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-06-12 02:20:18 +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'];
|
2022-04-14 00:39:31 +12:00
|
|
|
$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());
|
2021-12-28 01:45:23 +13:00
|
|
|
$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
|
|
|
}
|
|
|
|
|
2021-06-12 02:20:18 +12:00
|
|
|
public function shutdown(): void
|
2019-05-09 18:54:39 +12:00
|
|
|
{
|
|
|
|
}
|
2021-09-01 21:13:23 +12:00
|
|
|
}
|