Для Incvizition (от 19 и 22.08.2011)
«Почему не работала ранее описанная логика»
Давайте попробуем разобраться с той логикой, по которой у вас «не срабатывало» (от 19.08.2011)
1. Не срабатывала форма для входа, если пользователь не был включен в группу «Авторы».
Все правильно. И не должна была срабатывать. Стандартная форма входа должна срабатывать для «Зарегистрированных» или для любой другой группы, дочерней от нее. А если создавать группу, дочернюю от Public, то для таких групп форма входа и не должна работать.
Группа «Авторы» - дочерняя от «Зарегистрированных», поэтому для Авторов форма входа работает.
2. Авторы не могут на автомате изменять состояние статьи.
Все правильно. По умолчанию авторы действительно не могут публиковать статьи, а могут их только писать. Кроме авторов есть еще группы Editor, Publisher, у которых права шире, чем у авторов.
С другой стороны, права группы «Авторы» тоже можно менять. Причем сделать это можно самыми разными способами. Вы первоначально пошли по пути изменения настроек менеджера материалов. Таким образом вы изменили права для всех авторов во всех категориях, а потом вам пришлось выборочно запрещать. Для вашей задачи действительно это был не оптимальный вариант.
А то, что разрешения берутся из разных мест – это действительно так. Точнее, почти так. На самом деле происходит несколько другой процесс: Если что-то разрешено в общих настройках, то предполагается, что оно разрешено для всех. Из этого «разрешено для всех» вычитается то, что запрещено частыми настройками.
3. Присваиваешь пользователю несколько категорий - перестает работать.
Скорее всего была ошибка в настройке прав. Из описания не понятно, какие именно были сделаны настройки.
Одного пользователя можно включать в разные группы, все работает. Не будет работать только в том случае, если есть какие-то противоречия. Если есть противоречия в правах, конечно будет срабатывать запрет. И даже не потому, что это будет глюк, а потому, что так настроена Joomla – если есть прямой запрет, никакие разрешения потом не срабатывают.
Потому что запрет в виде наследования «отсутствие разрешения» всегда можно снять последующим разрешением. А запрет в виде прямого запрета последующим разрешением уже снять нельзя.