Introduced a backup system managing database and metadata files using Minio/S3, alongside routes for handling these. Integrated PHPMailer for robust email functionalities, including configuration testing and SMTP handling. Updated Dockerfile, composer dependencies, and minor code improvements to support new features.
59 lines
2.1 KiB
PHP
59 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace routes;
|
|
|
|
use classes\authentication;
|
|
use classes\backup_store;
|
|
use classes\response;
|
|
use classes\router;
|
|
use objects\logs_o;
|
|
use traits\route_t;
|
|
|
|
class moduleBackupsRoute
|
|
{
|
|
use route_t;
|
|
|
|
public function run(): void
|
|
{
|
|
global /** @var response $response */
|
|
/** @var router $router */
|
|
$router, $response;
|
|
|
|
|
|
/** Modules > Backups > GET */
|
|
$this->get('/modules/backup', function () {
|
|
global $response;
|
|
$this->requirePermission('modules_backup_list');
|
|
$user = (new authentication())->get_user();
|
|
if ($user) {
|
|
(new logs_o())->add('modules_backup', 'global', 1, $user->id, 'MODULES_BACKUP', 'Successfully fetched backup modules');
|
|
$response->success(
|
|
(new backup_store())->listBackups()
|
|
);
|
|
} else {
|
|
(new logs_o())->add('modules_backup', 'global', 1, 0, 'MODULES_BACKUP', 'No user found, or invalid session');
|
|
$response->error('Invalid session', 400);
|
|
}
|
|
});
|
|
|
|
/** Modules > Backups > POST */
|
|
$this->post('/modules/backup', function () {
|
|
global $response;
|
|
$this->requirePermission('modules_backup_create');
|
|
$user = (new authentication())->get_user();
|
|
if ($user) {
|
|
(new logs_o())->add('modules_backup', 'global', 1, $user->id, 'MODULES_BACKUP', 'Successfully created backup module');
|
|
// Check if the request contains a name, and description parameter
|
|
$name = $this->fromRequest('name');
|
|
$description = $this->fromRequest('description');
|
|
// Create the backup
|
|
$response->success(
|
|
(new backup_store())->createBackup($name, $description)
|
|
);
|
|
} else {
|
|
(new logs_o())->add('modules_backup', 'global', 1, 0, 'MODULES_BACKUP', 'No user found, or invalid session');
|
|
$response->error('Invalid session', 400);
|
|
}
|
|
});
|
|
}
|
|
} |