adasdadad
All checks were successful
Deploy / deploy-staging (push) Successful in 26s
Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-06-26 00:54:30 +02:00
parent a70704bc0a
commit 5a488260b9
17 changed files with 678 additions and 76 deletions

View File

@@ -11,12 +11,27 @@ final class AppRegistry
/**
* @param array<int, array<string, mixed>> $additionalApps
* @param array<string, array<string, mixed>> $accessOverrides
*/
public function __construct(string $configPath, array $additionalApps = [])
public function __construct(string $configPath, array $additionalApps = [], array $accessOverrides = [])
{
/** @var array<int, array<string, mixed>> $apps */
$apps = require $configPath;
$this->apps = array_values(array_merge($apps, $additionalApps));
$mergedApps = array_values(array_merge($apps, $additionalApps));
$this->apps = array_map(static function (array $app) use ($accessOverrides): array {
$appId = (string) ($app['app_id'] ?? '');
if ($appId === '') {
return $app;
}
$override = $accessOverrides[$appId] ?? null;
if (is_array($override) && array_key_exists('required_groups', $override)) {
$app['required_groups'] = array_values(array_map('strval', (array) ($override['required_groups'] ?? [])));
}
return $app;
}, $mergedApps);
}
/**