Skip to content

fix(core): Manager login with anonymous_sessions = No - #85

Open
Ibochkarev wants to merge 2 commits into
3.xfrom
fix/16424-manager-login-anonymous-sessions
Open

fix(core): Manager login with anonymous_sessions = No#85
Ibochkarev wants to merge 2 commits into
3.xfrom
fix/16424-manager-login-anonymous-sessions

Conversation

@Ibochkarev

@Ibochkarev Ibochkarev commented Aug 21, 2026

Copy link
Copy Markdown
Member

Что сделано

Сохраняет PHP-сессии доступными для менеджера, когда anonymous_sessions выключен на системном уровне.

Вместо special-case mgr внутри modX::_initSession() добавляется context setting anonymous_sessions=Yes на mgr (install data + апгрейд 3.3.0). Context settings переопределяют system settings, поэтому логин менеджера может стартовать сессию до того, как cookie существует. Публичные контексты по-прежнему могут ставить anonymous_sessions=No сами.

Английское описание настройки теперь говорит отключать опцию на публичных контекстах, а не system-wide, и что mgr нуждается в сессиях для логина.

Зачем нужно

При системном anonymous_sessions=No и очищенных cookie логин менеджера перезагружает форму и никогда не аутентифицирует. Session bootstrap стартует сессию только когда anonymous sessions разрешены или cookie сессии уже есть, поэтому первый логин никогда не получает cookie.

Обсуждение в modxcms#16424 / modxcms#12983 (и тредах комьюнити) трактовало это как context setting для публичных фронтов. Выключение в System Settings случайно отключает сессии и для mgr. Это изменение матчит ту модель: держать сессии менеджера вкл, оставляя публичным контекстам свободу opt out.

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

  1. Апгрейдните или примените новый context setting mgr anonymous_sessions=Yes (или запустите setup upgrade до 3.3.0-dev / 3.3.0-pl).
  2. Поставьте системный anonymous_sessions в No.
  3. Очистите cookie браузера.
  4. Откройте страницу логина менеджера, отправьте валидные данные.
  5. Подтвердите, что попадаете в дашборд менеджера.
  6. На контексте web поставьте anonymous_sessions в No и подтвердите, что анонимные фронт-запросы по-прежнему пропускают старт сессии, когда cookie нет.

Связанные

Refs modxcms#16424
Адресует фидбек от @Jako, @mkschell и @smg6511 о сохранении per-context намерения вместо хардкода mgr в core session bootstrap.

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

Ibochkarev and others added 2 commits July 27, 2026 16:45
Disable anonymous_sessions only on public contexts. Force
anonymous_sessions=Yes on the mgr context via install data and a 3.3.0
upgrade so manager login can start a session without an existing cookie.
Co-authored-by: Jim Graham <jim@pixelsandstrings.com>
@Ibochkarev Ibochkarev changed the title fix(core): логин менеджера при anonymous_sessions = No fix(core): Manager login with anonymous_sessions = No 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