adasdadad
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user