eerrrrrr
All checks were successful
CI - Build Tonehaus Docker image / tonehaus-ci-build (push) Successful in 1m57s

This commit is contained in:
2025-11-27 23:42:17 +00:00
parent 054e970df9
commit 1c98a634c3
50 changed files with 1666 additions and 593 deletions

View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
use Symfony\Config\DoctrineConfig;
return static function (DoctrineConfig $doctrine): void {
$driver = strtolower((string) ($_ENV['DATABASE_DRIVER'] ?? $_SERVER['DATABASE_DRIVER'] ?? 'postgres'));
$supportedDrivers = ['postgres', 'sqlite'];
if (!in_array($driver, $supportedDrivers, true)) {
throw new \InvalidArgumentException(sprintf(
'Unsupported DATABASE_DRIVER "%s". Allowed values: %s',
$driver,
implode(', ', $supportedDrivers)
));
}
$dbal = $doctrine->dbal();
$dbal->defaultConnection('default');
$connection = $dbal->connection('default');
$connection->profilingCollectBacktrace('%kernel.debug%');
$connection->useSavepoints(true);
if ('sqlite' === $driver) {
$connection->driver('pdo_sqlite');
$hasCustomPath = array_key_exists('DATABASE_SQLITE_PATH', $_ENV)
|| array_key_exists('DATABASE_SQLITE_PATH', $_SERVER);
if ($hasCustomPath) {
$connection->path('%env(resolve:DATABASE_SQLITE_PATH)%');
} else {
$connection->path('%kernel.project_dir%/var/data/database.sqlite');
}
} else {
$connection->url('%env(resolve:DATABASE_URL)%');
$connection->serverVersion('16');
$connection->charset('utf8');
}
};

View File

@@ -1,13 +1,4 @@
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '16'
profiling_collect_backtrace: '%kernel.debug%'
use_savepoints: true
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true

View File

@@ -1,27 +0,0 @@
framework:
messenger:
failure_transport: failed
transports:
# https://symfony.com/doc/current/messenger.html#transport-configuration
async:
#dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
dsn: 'sync://' # meh
options:
use_notify: true
check_delayed_interval: 60000
retry_strategy:
max_retries: 3
multiplier: 2
failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
default_bus: messenger.bus.default
buses:
messenger.bus.default: []
routing:
# Route your messages to the transports
# 'App\Message\YourMessage': async

View File

@@ -1,4 +1,7 @@
security:
role_hierarchy:
ROLE_ADMIN: ['ROLE_MODERATOR']
ROLE_MODERATOR: ['ROLE_USER']
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
@@ -17,11 +20,11 @@ security:
provider: app_user_provider
form_login:
login_path: album_search
login_path: app_login
check_path: app_login
enable_csrf: true
default_target_path: album_search
failure_path: album_search
failure_path: app_login
username_parameter: _username
password_parameter: _password
csrf_parameter: _csrf_token
@@ -45,8 +48,9 @@ security:
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
- { path: ^/admin/settings, roles: ROLE_ADMIN }
- { path: ^/admin/users, roles: ROLE_MODERATOR }
- { path: ^/admin/dashboard, roles: ROLE_MODERATOR }
when@test:
security: