среда, 13 июля 2011 г.

ACL (Access Control List) в Joomla 1.6. Права доступа в Joomla 1.6.

Сегодня я хотел бы остановиться на тяжелой и запутанной теме по CMS Joomla 1.6, как может показаться на первый взгляд. Но, надеюсь, прочитав мою статью для Вас все станет понятно по такому понятию как ACL в Joomla 1.6. В следующей статье я хотел бы остановиться на следую щих моментах:
  1. Ввести основные определения (без них тяжел разобраться с работой Acces Control List).
  2. Рассмотреть пример (для того, чтобы все разложить по полочкам).
Понятия.
Для того чтобы понять, что такое ACL (Access List Control) в Joomla 1.6 необходимо разобраться с понятиями:
  1. Пользователь – это любой человек, который зашел на наш сайт. Пользователь может быть как зарегистрированным, так и незарегистрированным. Пользователь должен относиться как минимум к одной группе. Нельзя пользователю создать отдельные права.
  2. Группа – это набор пользователей с одинаковыми правами. В CMS Joomla 1.6 в отличие от CMS Joomla 1.5 можно создавать сколько угодно групп (по словам разработчиков).
  3. Уровень доступа  отвечает за видимость того или иного модуля в определенной части модуля. Уровень доступа может включать как одну так и несколько групп пользователей. Опять же, по словам разработчиков, мы может создать сколь угодно много уровней доступа.
  4. Права доступа отвечают за ограничение определенных действий для пользователя в определенной части нашего сайта. Под ограничением понимаем два действия: «Разрешить» или «Запретить».  В отличие от уровней доступа права доступа ограничены:
    • Вход на сайт – разрешает/запрещает пройти авторизацию на нашем сайте;
    • Вход в панель – разрешает/запрещает вход в админ панель;
    • Суперадминистратор – разрешает/запрещает группе пользователей выполнять любые действия на сайте, независимо от других настроек;
    • Доступ к компоненту – разрешает/запрещает доступ ко всем пунктам админ панели, кроме глобальных настроек;
    • Создавать  -- разрешает/запрещает группе пользователей создавать любое содержимое, любой объект (например: материал, пункты меню и т.п.);
    • Удалять – разрешает/запрещает группе пользователей удалять любые объекты;
    • Изменять – разрешить/запрещает группе изменять существующие объекты;
    • Изменять состояние – разрешает/запрещает изменять состояние объектов;
    • Изменять свои – разрешает/запрещает группе пользователей изменять объекты, владельцем которых они являются.

    5.  Разрешения прав доступа  – это статус, который мы может установить на право доступа. Существует всего четыре статуса:
    • Не установлено – по умолчанию запрещает доступ, но в отличие от статуса «Запрещено» может быть изменен на «Разрешить» у дочерней группы путем выставления статус права доступа на «Разрешить»;
    • Унаследовано – состояние наследуется от родительской группы или группы, которая стоит выше по иерархии;
    • Разрешить  -- разрешает доступ;
    • Запрещено – запрещает доступ, следует отметить, что если поставить статус «Запрещено», то у дочерней группы даже, если выставить «Разрешить» все равно будет запрещено.

Действия разрешения определяются на четырех уровнях:
  1. Глобальный уровень определяет права доступа по умолчанию для  каждого действия по умолчанию.
  2. Уровень компонента определяет права доступа для определенного компонента  (например статьи, меню, баннеров).
  3. Уровень категории на этом уровне прав доступа мы определяем разрешения для определенной категории.
  4. Уровень статьи на этом уровне мы устанавливаем права доступа для конкретной статьи. Замечание этот уровень доступен только для статей, для других компонент доступны первые три уровня.

Остановимся на некоторых важных моментах Системы контроля доступа CMS Joomla 1.6 без которых невозможно пользоваться ACL.
Первое необходимо соблюдать иерархию Access Control List CMS Joomla 1.6 :  Глобальный уровень (самый верхний уровень) ->Уровень компонента->Уровень категории->Уровень Статьи.
Второе, статус «Запрещено» будет передаваться в дочерние группы, если даже мы изменим статус на «Разрешить» все равно суммарный статус будет «Запрещено».
В-третьих, если стоит статус «Не установлено», то по умолчанию он приравнивается к статусу «Запрещено», но в отличие от статуса «Запрещено» мы в дочерней группе можем изменить этот статус на «Разрешить», тогда суммарный статус дочерней группы будет «Разрешено».
И, в-третьих корневой группой является группа «Public».
Пример создания уровней доступа в CMS Joomla 1.6.
Допустим, у нас есть университет с тремя факультетами:
  1.      Математика.
  2.      Астрономия.
  3.      Философия.

Постановка задачи:
  1.      Студенты факультета «Математики» имеют право добавлять, изменять, удалять статьи, которые находятся в подразделе «По математика» раздела «Математика». А подразделы «По астрономии» и «По философии» только просматривать.
  2.      Студенты факультета «Астрономия» имеют право добавлять, изменять, удалять статьи, которые находятся в подразделе «По астрономии» раздела «Рефераты». А подразделы «По математике» и «По философии» только просматривать.
  3.      Аналогично и для факультета «Философии» -- могут делать все в «По философии» и только просматривать в «По математике» и «По астрономии».


Составим план решения данной задачи:
  1. Создадим категорию «Рефераты».
  2. Создадим подкатегориии «По математике», «По астрономии», «По философии», родителем для которых будет категория «Рефераты».
  3. Создадим по три статьи в каждой категории.
  4. Создадим меню и добавим модуль отображения данного меню.
  5. Создадим три группы пользователей:
    • gr_math и назначим разрешения;
    • gr_astr и назначим разрешения;
    • gr_phil и назначим разрешения.

         6.  Создадим три уровня доступа:
    • lv_math;
    • lv_astr;
    • lv_phil.

        7.  Создадим в каждой группе по пользователю.
        8. Распределим уровни доступа в соответствии с поставленной задачей.
        9.  Распределим права доступа с поставленной задачей.
В следующей статье рассмотрим решение данной задачи.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



0 коммент.:

Отправить комментарий