Skip to content

fix(acl): resolve renamed Resource policy for parallel groups - #14

Open
Ibochkarev wants to merge 1 commit into
3.xfrom
fix/issue-13831-parallel-resource-group-policy
Open

fix(acl): resolve renamed Resource policy for parallel groups#14
Ibochkarev wants to merge 1 commit into
3.xfrom
fix/issue-13831-parallel-resource-group-policy

Conversation

@Ibochkarev

@Ibochkarev Ibochkarev commented Aug 21, 2026

Copy link
Copy Markdown
Member

Что сделано

Переименование базовой Access Policy Resource ломало «create parallel resource group» при создании группы пользователей: визард искал политику по литеральному имени Resource, получал null и не записывал строки modAccessResourceGroup (modxcms#13831).

modAccessPolicy::getPolicy() сначала разрезолвит штатное имя. Если его нет и политика мапится 1:1 на базовый шаблон (Resource / Element / Context / Hidden Namespace) с ровно одной политикой на этом шаблоне, возвращает её. Несколько политик на шаблоне fail closed (null).

Визарды создания user/resource group теперь вызывают getPolicy() с константами POLICY_*.

Вне scope (по комментариям к issue): сделать базовые политики read-only. Дублирование-и-кастомизация остаётся рекомендованным workflow; этот фикс только расфиксивает rename.

Как проверить

  1. Переименуйте Access Policy Resource в другое имя.
  2. Создайте группу пользователей с включённым «create parallel resource group» для контекста.
  3. Подтвердите, что ACL группы ресурсов появляется под Permissions / User group access.
  4. Gate E:
    • php -l core/src/Revolution/modAccessPolicy.php → exit 0
    • composer run-script phpunit -- --filter modAccessPolicyTest → OK (3 теста, 9 assertions)

Связанные

Refs modxcms#13831

Совместимость

Затрагивает ACL-визарды, которые ранее хардкодили имена базовых политик. Сайты, не переименовывающие базовые политики, ведут себя как раньше. Если политика Resource удалена и заменена несколькими кастомными на ResourceTemplate, создание parallel-group ACL всё ещё fail closed (как при отсутствующей политике).

Совместимость

Без удаления сигнатур публичных методов. Добавляет modAccessPolicy::getPolicy(). Безопасно для patch-потребителей.

Оригинал: modxcms#16996

Lookup core Access Policies by shipped name with a fail-closed
template fallback so renaming Resource no longer breaks
addParallelResourceGroup (modxcms#13831).
@Ibochkarev Ibochkarev changed the title fix(acl): разрезолвить переименованную политику Resource для параллельных групп fix(acl): resolve renamed Resource policy for parallel groups Aug 21, 2026
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.

1 participant