пятница, 14 августа 2009 г.

Делегирование прав в Joostina 1.2.x (Joomla 1.0.x)

Итак имеется задача ограничить доступ пользователей к определенным категориям (разделам) сайта и при этом ограничивать грамотно, т.е. не тупо если ты не зарегистрированный тебя не пускаю, это Joomla и сама умеет делать, а красиво раскидать пользователей по группам и выставлять права группам пользователей. Ну а что делать фанатам Joostina с её уже не маленькими отличиями в ядре движка по отношению к оригинальной Joomla 1.0.x? Озадаченный этим вопросом я приступил к поиску.

Перебрал около 5 расширений из раздела "access-security" ничего в голову кроме смутных сомнений и желания переводить сайт на Joomla 1.5.x. не приходило Компонент JACLPlus, который подходил по всем параметрам и неплохо работал на оригинальной Jooma 1.0, на Joostina даже ставится не захотел. После некоторой допилки напильником я его установил, но работать он естественно отказался, так-как данное расширение представляет из себя хак, который наглым образом правит движок CMS, добавляя свое API и ACL функционал.

В общем не буду томить, рабочий компонент все таки нашелся и зовется он Juga http://www.dioscouri.com. Заметил интересную особенность, под ветку 1.0 что JACLPlus, что Juga распространяются бесплатно, а вот ветку 1.5 уже за денежку.

Juga поставляется в следующей комплектации:
  • компонент - основа управления из админ панели. Позволяет создавать группы, привязывать пользователей к этим группам и открывать доступ к контенту, только указанным группам.
  • 2 мамбота - один сканирует контент и складирует его в базе, в последствии на который можно задать права. Второй непосредственно ограничивает права к указанному контенту.
  • 2 модуля - один модуль меню предлагает поменять стандартное mainmenu, назначение второго не понмю. Ни один из этих модулей я не ставил, за ненадобностью.
Отличительная особенность Juga, в том что она не трогает API и ядро движка Joostina(Joomla), собственно потому и работает на Joostina. =)

Установка и настройка:
  1. Ставим компонент juga_com_v1.0.zip
  2. Ставим мамботы juga_plugin-content_v1_0.zip и juga_bot_v1.0.zip
  3. Активируем мамботы
  4. Переходим в меню Juga. Публичную группу не трогаем, можем переименовать её пожеланию.
  5. Создаем свои группы.
  6. Обновляем с Front-end страницу к которой хотим ограничить доступ. Если включен SEF рекомендуется его отключить, чтобы не было путаницы.
  7. Ищем в Juga нашу страничку по типу и ID-номеру и привязываем к ней необходимые группы доступа.
  8. Все. Теперь при попытке зайти на эту страницу пользователем не принадлежащим ни к одной из указанных групп, мамбот вежливо пошлет куды подальше.