Use DB-backed whitelist in TokenValueResolver; add whitelist merge test

This commit is contained in:
Simon Pocrnjič
2025-10-06 19:16:24 +02:00
parent 38562fbabe
commit 80b3c7230b
2 changed files with 80 additions and 2 deletions
@@ -19,8 +19,12 @@ public function resolve(array $tokens, DocumentTemplate $template, Contract $con
{
$values = [];
$unresolved = [];
$globalWhitelist = config('documents.whitelist', []);
$templateEntities = $template->entities ?: array_keys($globalWhitelist);
// Retrieve whitelist from DB settings (if present) and merge with config baseline (config acts as baseline; DB can add or override entity arrays)
$settingsWhitelist = app(\App\Services\Documents\DocumentSettings::class)->get()->whitelist ?? [];
$configWhitelist = config('documents.whitelist', []);
// Merge preserving DB additions/overrides
$globalWhitelist = array_replace($configWhitelist, $settingsWhitelist);
$templateEntities = $template->entities ?: array_keys($globalWhitelist);
foreach ($tokens as $token) {
[$entity,$attr] = explode('.', $token, 2);
if ($entity === 'generation') {