v7.0.0 release

This commit is contained in:
HeuJung committed 2026-07-01 10:30:32 +09:00
1 parent 0e7fa04b03
commit c4ea9a6cd1
3582 files changed
+626189 -160151

No files matched your search

+33 -12
View File
@@ -163,6 +163,12 @@ class IdentityMessageTemplateService
}
}
// 템플릿 편집 시 updateTemplate 이 definition.is_default 를 false 로 내렸으므로,
// 시드 정의 복원 시 definition 플래그도 함께 true 로 되돌린다 ('기본' 배지/reset 버튼 노출 조건 정상화).
if ($updated->definition instanceof IdentityMessageDefinition) {
$this->definitionService->markAsDefault($updated->definition);
}
$this->definitionService->invalidateAllCache();
HookManager::doAction('core.identity.message_template.after_reset', $updated);
@@ -191,23 +197,38 @@ class IdentityMessageTemplateService
*/
protected function getDefaultTemplateData(IdentityMessageTemplate $template): ?array
{
$definition = $template->definition;
$defaultDefinition = $this->getDefaultDefinitionData($template->definition);
if ($defaultDefinition === null) {
return null;
}
foreach ($defaultDefinition['templates'] ?? [] as $defaultTemplate) {
if (($defaultTemplate['channel'] ?? null) === $template->channel) {
return $defaultTemplate;
}
}
return null;
}
/**
* 정의가 시더 기본 정의(시드 정의)에 매칭되면 해당 기본 정의 데이터를 반환합니다.
*
* 운영자가 추가한 정의(admin definition)는 어떤 기본 정의에도 매칭되지 않아 null 을 반환합니다.
*
* @param IdentityMessageDefinition|null $definition
* @return array|null
*/
protected function getDefaultDefinitionData(?IdentityMessageDefinition $definition): ?array
{
if (! $definition instanceof IdentityMessageDefinition) {
return null;
}
$allDefaults = $this->collectDefaultDefinitions();
foreach ($allDefaults as $defaultDefinition) {
if (! $this->matchesDefinition($defaultDefinition, $definition)) {
continue;
}
foreach ($defaultDefinition['templates'] ?? [] as $defaultTemplate) {
if (($defaultTemplate['channel'] ?? null) === $template->channel) {
return $defaultTemplate;
}
foreach ($this->collectDefaultDefinitions() as $defaultDefinition) {
if ($this->matchesDefinition($defaultDefinition, $definition)) {
return $defaultDefinition;
}
}