Я обновил 1.5 Joomla до версии 3.9.x, и теперь у меня есть особая проблема с разрешениями.
Пользователи делятся на стандартные группы, входящие в Joomla, так что есть 2 суперпользователя и несколько «менеджеров». Суперпользователи обычно создают статьи, менеджеры заканчивают и публикуют их.
Таким образом, в Системе -> Глобальная конфигурация -> Статьи -> Разрешения установлены на «Редактировать - Разрешить» и «Редактировать состояние - разрешить», что означает, что на каждом новом созданном менеджере статьи могут редактировать статьи.
Теперь суперпользователь нажимает на Content -> Articles -> New и проверяет эту (еще не сохраненную) вкладку разрешений. «Расчетное разрешение» показывает зеленое состояние «Разрешено» на вкладке «Менеджер» - как установлено в глобальной конфигурации.
Теперь статья будет сохранена и снова открыта, теперь на вкладке разрешений в менеджере отображается КРАСНЫЙ «Запрещено», хотя и сохранено с явным «Разрешено».
При повторном изменении и сохранении исправленного состояния (для существующей статьи) разрешения устанавливаются правильно, и менеджеры могут редактировать статью.
В фактическом состоянии суперпользователь должен создать статью, закрыть и снова открыть ее и установить необходимые разрешения, чтобы сделать ее доступной для других внутренних пользователей.
Как я могу это исправить?
Мое предположение:
При первом сохранении права доступа не установлены правильно, поэтому Joomla использует «резервные разрешения», что означает, что редактировать эту статью могут только суперпользователи.
Edit:
Вот интересный комментарий в исходном коде ядра Joomla, где сохраняются разрешения:
@ to do: неверная информация При создании нового элемента (без сохранения) он использует рассчитанные разрешения для компонента (item <-> component <-> global config).
Но если у нас тоже есть раздел (item <-> section (s) <-> component <-> global config), это не правильно.
Кроме того, в настоящее время он использует разрешение компонента, но должен использовать рассчитанные разрешения для достижения компонента / раздела.