Skip to content

Feature/issue 583 email templates to disk#595

Open
kayjoosten wants to merge 7 commits into
mainfrom
feature/issue-583-email-templates-to-disk
Open

Feature/issue 583 email templates to disk#595
kayjoosten wants to merge 7 commits into
mainfrom
feature/issue-583-email-templates-to-disk

Conversation

@kayjoosten
Copy link
Copy Markdown

No description provided.

Both fields are now read from disk/parameters.yaml. Any values pushed
via the management API are silently ignored — no events fired, no DB
writes. Validation accepts but does not inspect either field.
SraaService now takes the %sraa% parameter (list of nameId strings)
instead of SraaRepository. All callers updated. SraaProjector and
SraaRepository kept for historical event replay compatibility.
DiskEmailTemplateService reads .html.twig files from
config/openconext/email_templates/<locale>/<name>.html.twig with
fallback locale support. Default templates added for en_GB and nl_NL
using canonical content from OpenConext-devconf. EmailTemplatesWarmer
validates all templates at cache warmup and fails loudly if any are
missing or contain invalid Twig syntax. Twig sandbox policy updated
to allow format_date filter.
Remove fixtures and assertions for sraa/email_template validation that
no longer applies. Update mocks from SraaRepository to SraaService in
DeprovisionServiceTest and RightToBeForgottenCommandHandlerTest.
Test that a push with only gateway is accepted, and that a push
containing sraa and email_templates is silently accepted without error.
@kayjoosten kayjoosten force-pushed the feature/issue-583-email-templates-to-disk branch 2 times, most recently from 96c7f8a to c4f8d6d Compare June 1, 2026 08:02
@kayjoosten kayjoosten requested a review from johanib June 1, 2026 12:28
@kayjoosten kayjoosten linked an issue Jun 3, 2026 that may be closed by this pull request
8 tasks
@johanib
Copy link
Copy Markdown
Contributor

johanib commented Jun 4, 2026

docs/MiddlewareConfiguration.md:35 still refers to the now removed sraa and email templates. As does docs/postman/2.http

Copy link
Copy Markdown
Contributor

@johanib johanib left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, but wip review. Lets use my difficult questions as a discussion point.

private function createConfigurationUpdatedEvents(array $newConfiguration, array $oldConfiguration = null): array
{
// sraa and email_templates are dropped before processing; strip them from expected events too
unset($newConfiguration['sraa'], $newConfiguration['email_templates']);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤨


# List of name_ids for Super Registration Authority Administrators (SRAA).
# Replaces the sraa field previously pushed via the management API.
sraa: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Should there be a / is there a sensible default for a value for use in devconf?

$decodedConfiguration = JsonHelper::decode($newConfiguration);

// sraa and email_templates are read from disk/parameters.yaml; ignore any values from the push
unset($decodedConfiguration['sraa'], $decodedConfiguration['email_templates']);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the logical place for this?

foreach (self::TEMPLATE_NAMES as $name) {
$path = sprintf('%s/%s/%s.html.twig', $this->templatesDir, $locale, $name);

if (!file_exists($path)) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File exists !== file is readable.

 $content = file_get_contents($path);
 if ($content === false) {
     throw new \RuntimeException(
         "Email template file exists but is not readable: $path"
     );
 }
 $this->twig->createTemplate($content)

Also goes for DiskEmailTemplateService

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move email templates and sraa config to disk

2 participants