Примечание: Это проект написан для версии в октябре 2009 альфа2 выпуска Joomla! Версия 1.6. Начиная с версии 1.6, все еще в активной разработке, скриншоты и другую информацию в данной статье может измениться до финального релиза версии 1.6. Однако, ожидается, что основные понятия, изложенные здесь не изменится.
ACL Определенный
ACL или список контроля доступа
Согласно Википедии, "ACL определяет, какие пользователи или системные процессы предоставляется доступ к объектам, а также какие операции разрешено выполнять на данные объекты."
В случае Joomla!, У нас есть два отдельных аспекта ACL.
1. Какие пользователи могут получить доступ к тому, что части веб-сайта? Например, будет дано меню выбора быть видимыми для данного пользователя?
2. Какие операции (или действия) пользователь может выполнять на любом объекте? Например, можно представить пользователей или редактировать статьи?
Обзор ACL в версии 1.6
Пользователи, группы и уровни доступа
С определением в виду, давайте посмотрим, как мы создали ACL для нашего сайта в версии 1.6. В таблице ниже представлены основные изменения, начиная с версии 1.5.
| Version 1.5 | Version 1.6 | |
| Groups | 7 фиксированных групп (государственные, зарегистрированных, Автор, редактор, издатель, менеджер, администратор, и супер-администратор) | Неограниченное определяемые пользователем группы |
| Users & Groups | Пользователь может быть назначен только одной группе | Пользователь может быть отнесен к нескольким группам |
| Access Levels | 3 фиксированных уровней доступа (Public, Registered, Special) | Неограниченное пользовательские уровни доступа |
| Access Levels & Groups | Отношения между группами и уровней доступа была установлена. | Группы относятся к уровни доступа. Любая комбинация Группы могут быть назначены на любой уровень доступа. |
Мы видим, что в каждом случае ACL было сделано гораздо более гибким, с неограниченным группы и уровни доступа, и возможность назначать одного пользователя несколько групп и группы, к любой уровень доступа.
Действия группы, и наследование
Другую сторону ACL является предоставление разрешений пользователям принять меры по объектам. Здесь опять-таки это большая перемена между Версия 1.5 и 1,6. В 1.5, действия разрешены для данной группы были установлены. Например, пользователь в группе Автор может представить только статьи в то время как кто-то в группу издателей могут представлять, редактировать и публиковать статьи. Кроме того, в версии 1.5 разрешения были все или ничего ". Член группы редактор может редактировать все статьи на сайте.
Приведенная ниже таблица показывает, что изменилось между версиями 1.5 и 1.6.
| Version 1.5 | Version 1.6 | |
| Groups and Actions | Действия позволило различными группами являются фиксированными. | Действия допускается для каждой группы определяется администратором сайта. |
| Permission Scope | Весь сайт. Пользователь имеет такие же разрешения для всех объектов на сайте. | Разрешения могут быть установлены на разных уровнях в иерархии: Сайт, компонентный, категория, объект. |
| Permission Inheritance | Не применимо | Разрешения могут наследоваться от родительских групп и родителей Категории |
Как Разрешения работы
Есть четыре возможных разрешений для действия, как указано ниже:
* Не установлено: По умолчанию "отказать", но, в отличие от разрешения "Запретить", это разрешение может быть отменено путем установки группе ребенка или низкий уровень в иерархии разрешений "Разрешить". Это разрешение относится только к глобальной разрешения конфигурации.
* Наследование: наследует значение из родителей или от группы высокого уровня в иерархии разрешений. Это разрешение распространяется на всех уровнях, кроме уровня глобальной конфигурации.
* Запретить: это отрицает действий для данного уровня и группы. ВАЖНО: Это также отрицает это действие для всех детей группы и все более низких уровнях иерархии разрешений. Ввод в Разрешить для группы детей или более низком уровне не будет иметь никакого эффекта. Действие всегда будет запрещен для любого члена группы детей и для любого более низкого уровня в иерархии разрешений.
* Разрешить: Позволяет это действие для данного уровня и группы и на более низких уровнях и детских групп. Это не имеет никакого эффекта, если высшие группы или не установлен уровень разрешить или запретить. Если выше группы или уровня значение Запретить, то это разрешение всегда будет отказано. Если выше группы или уровня это позволяет, то это разрешение будет уже разрешены.
Иерархия уровней разрешений
Действие разрешения в версии 1.6 можно определить до четырех уровней, а именно:
1. Глобальная конфигурация: определяет разрешения по умолчанию для каждого действия и группы.
2. Компонент Options-> Разрешения: можно переопределить разрешения по умолчанию для этого компонента (например, статьи, меню, пользователи, баннеры и т.д.)
3. Категория: можно переопределить разрешения по умолчанию для объектов в одну или несколько категорий. Применяется для всех компонентов с категориями, в том числе статьи, баннеры, Контакты, Ленты новостей, и Weblinks.
4. Статья: Можно переопределить разрешения на конкретную статью. Этот уровень относится только к статьям. Другие компоненты позволяют только первые три уровня.
Глобальная конфигурация
Это доступ с сайта → Global Configuration → разрешений. Этот экран позволяет устанавливать верхнего уровня разрешения для каждой группы для каждого действия, как показано на скриншоте ниже.

Варианты для каждого значения не установлены (как показано "..."), Разрешить или Запретить.
Компонент Options-> Разрешения
Это доступ для каждого компонента, нажав на значок Параметры на панели инструментов. Этот экран похожие на Глобальный экран конфигурации выше, за исключением, что варианты являются наследниками, Разрешить или Запретить. Пример показан ниже:

Обратите внимание, что эта опция будет доступна только для членов группы, которые имеют разрешение на действия администратора в глобальной конфигурации экрана.
Категория
Категория разрешения доступа в Менеджер категорий: Редактировать категорию экране. Этот экран имеет пять вкладок, как показано ниже.

Первая закладка показывает текущие разрешения для каждой группы в этой категории. Каждый из четырех других вкладках позволяет изменять разрешения для одного действия. Например, на экране ниже показано, как можно изменить разрешения на вкладке Создание.

Обратите внимание, что Управление и администратора действия не применяются на уровне категорий, поэтому эти действия не включены.
Отметим также, что категории могут быть организованы в иерархии. Если так, то действия разрешения на один уровень наследуются автоматически ребенка категории. Например, если у вас категории иерархии Животные → Домашние животные → Собаки, то полный уровня иерархии разрешение на статью в категорию Собаки будет выглядеть следующим образом:
* Глобальная конфигурация
* Статья менеджера → Функции → Разрешение
Категория Животные
Категория Домашние животные
* Собаки Категория
* Конкретную статью
Статья
Разрешения для одной статьи, доступ в статье Менеджер: Редактировать статьи экране. Этот экран имеет четыре вкладки, как показано ниже.

Первая закладка показывает текущие разрешения для каждой группы для этой статьи. Каждая из других вкладок позволяет изменять разрешения для одного действия. Например, на экране ниже показано, как можно изменить разрешения на Удалить вкладку.

Обратите внимание, что Управление, административная, а также создавать действия не применяются на уровне статей, так что эти действия не включены. Разрешение на создание статьи установлен в одном из высших уровней в иерархии.
Уровни доступа
Уровни доступа в версии 1.6 являются простыми и гибкими. На экране ниже показан специальный доступ уровня.

Чтобы создать уровень доступа, вы просто установите флажок для каждой группы, которые следует включить в этот уровень. Специальный уровень доступа включает в себя администратор, менеджер, издатель, редактор, автор и Super групп пользователей.
После Уровни доступа создаются, они используются так же, как и в версии 1.5. Каждый объект в передней части присваивается уровень доступа. Если уровень общественной, то любой может получить доступ к этому объекту. В противном случае, только члены группы, установленного для этого уровня доступа может получить доступ к этому объекту.
Например, на экране ниже показано меню "Правка" пункт экран со списком доступных уровней доступа.

По умолчанию ACL установки
Когда Joomla! установлены, они устанавливаются на свои первоначальные настройки по умолчанию. Мы обсудим эти начальные настройки, как способ понять, как ACL работ.
Группы по умолчанию
Версия 1.6 позволяет определять собственные группы. При установке версии 1.6, она включает в себя множество групп по умолчанию, как показано ниже.

Стрелки указывают детско-родительских отношений. Как уже говорилось выше, при установке разрешения для родительской группы, это разрешение автоматически наследуется всеми детские группы. Не установлено, наследовать и Разрешить разрешения могут быть изменены для ребенка группу. Запретить разрешения не могут быть изменены и всегда будет отрицать действия для всех дочерних групп.
Глобальная конфигурация
Joomla! Версия 1.6 будет установить с той же знакомой разрешения фоновым, что и версия 1.5. Однако, с 1,6, вы можете легко изменить эти в соответствии с потребностями вашего сайта.
Как уже говорилось ранее, разрешение на каждое действие по наследству от уровня выше в иерархии и разрешения от родительской группы группы. Давайте посмотрим, как это работает. Верхнего уровня для этого весь сайт. Это устанавливается в Сайт-> Global Configuration-> Разрешения, как показано ниже.

Первое, что нужно обратить внимание, это заголовки столбцов, Admin, Логин, Управление, создавать, удалять, редактировать, редактировать государства. Эти действия, которые могут выполнять использования на объект в Joomla. Конкретный смысл каждого действия зависит от контекста. Для глобальной экран конфигурации, они определяются следующим образом:
Admin
Гранты пользователя "супер пользователя" статус. Пользователи с этим разрешением могут сделать что-нибудь на сайте. Только пользователи с данным разрешением могут изменить глобальные параметры конфигурации (этот экран). Эти разрешения не могут быть ограничены.
Войти
Войти в задней части или передней части сайта
Управление
Открыть компонента экраны яслях (User Manager, Menu Manager, статьи Manager, и так далее)
Создать
Создание новых объектов (например, пользователей, пункты меню, статьи, гиперссылки и т. д.)
Удалить
Удалить существующие объекты
Изменить
Изменить существующие объекты
Изменить государства
Изменение состояния объекта (Публикация, отменить публикацию, Архив, и "Корзина")
С левой стороны, у нас есть группы для сайта. В этом случае, у нас есть стандартный 7 групп, которые были в версии 1.5 плюс у нас есть дополнительные группы под названием "Парк Рейнджерс". Обратите внимание, что наши группы создаются с подобными разрешениями, как они были для версии 1,5. Имейте в виду, что мы можем изменить любой из этих разрешений, чтобы работы по обеспечению безопасности, как мы хотим. Давайте пройти через это, чтобы увидеть, как она работает.
* Общественная есть все значение "..." или не установлен. По умолчанию в этом случае не для разрешения. Так что, как и следовало ожидать, группа Общественного не имеет специального разрешения. Кроме того, важно отметить, что, поскольку ничего не имеет значение Запретить, все эти разрешения могут быть переопределены ребенка группами или более низких уровнях иерархии разрешений.
* Зарегистрирован то же самое, за исключением общественного Разрешить разрешения на действие Войти. Это означает, что члены группы могут Зарегистрированные Войти на сайт. Поскольку по умолчанию разрешения наследуются, это означает, что, если ребенок группы отменяет это разрешение, все дочерние групп, зарегистрированных сможет Войти также.
* Члены группы администраторов имеют разрешения на управление, создавать, удалять, редактировать, и изменить государства. Это означает, что члены этой группы, по умолчанию, можно делать все, кроме быть "супер пользователя". Они могут открывать различные экраны менеджер компонента (User Manager, статьи Manager, и т.д.) и может создавать, удалять, редактировать и изменять состояние этих объектов.
* Менеджер "ребенок" группы в группу администраторов. Так, по умолчанию, руководитель группы наследует все же разрешения, администратору группы.
* Парк Рейнджерс "и издатель как дети, зарегистрированных и наследуют по умолчанию, что группы разрешений.
* Редактор ребенок группы издателей и наследует его разрешения.
* Автор является дочерним группы редактора и наследует его разрешения. Так как издателей, редактор, и автор не фоновых разрешения, мы их обсудим ниже, когда будем обсуждать интерфейсных разрешения.
* Super пользователя группа Разрешить разрешение на действия администратора. Из-за этого, члены этой группы имеют супер разрешения пользователя на сайте. Они только пользователи, которые могут получить доступ и изменять значения на экране глобальной конфигурации.
Есть два очень важных моментов, чтобы понять из этого экрана. Во-первых, увидеть, как разрешения могут быть унаследованы от родительской группы. Во-вторых, увидеть, как вы можете контролировать разрешения по умолчанию на группы и действий.
Это обеспечивает большую гибкость. Например, если вы хотите Парк Рейнджерс ", чтобы быть в состоянии иметь возможность Войти в задней части, вы можете просто изменить свой Логин значение" Разрешить ". Если вы хотите, чтобы не позволить членам группы администраторов для удаления объектов или изменения их состояния, потребовалось бы изменить их разрешения в этих столбцов для наследования (или Запретить).
Параметры компонента и разрешений
Теперь, давайте продолжим видеть, как фоновый разрешения по умолчанию для версии 1,6 имитировать разрешения для версии 1,5. Группа супер пользователя в 1,6 эквивалентно группы Super Administrator в 1,5.
Просто глядя на экран глобальной конфигурации выше, может показаться, что группа администратора и менеджера группы имеют одинаковые права. Однако, в версии 1.5 Администраторы могут делать все, кроме глобальной конфигурации, в то время как менеджеры не разрешается добавлять пользователей или работы с меню. Это верно и в версии 1.6 по умолчанию конфигурации. Давайте посмотрим, как это достигается.
Если перейти на пользователя-> User Manager и нажмите кнопку "Параметры" на панели инструментов, мы видим на экране ниже:

На этом экране так же, как Глобальная конфигурация разрешений экрана, кроме того, что эти значения влияют только на работу с пользователями. Давайте посмотрим, как это работает.
Во-первых, обратите внимание, что группы Администратор Разрешить разрешение на действия администратора и группы Менеджер отказать в разрешении на это действие. Помните, что действия администратора в глобальной конфигурации экрана дает группы "супер пользователя" разрешения. На этом экране, действия администратора позволяет редактировать параметры значения. Таким образом, администратор группы может сделать это, но менеджер группы не могут.
Далее, обратите внимание, что администратор Наследовать для управления действий и руководитель группы имеет Запретить разрешения. На этом экране, Управление действия дает группе доступ к User Manager. Поскольку администратор Разрешить для Управление действия по умолчанию, то разрешение Наследовать здесь означает, что они наследуют Разрешить разрешение на управление действия. Так как группа Менеджер отказать в разрешении на действия управления, члены группы менеджер не может получить доступ User Manager и поэтому не может сделать любой другой пользователь действий, связанных с.
Если вы посмотрите на варианты меню-> Menu Manager, вы увидите те же настройки по умолчанию как для User Manager. Опять же, администратор группы может управлять и набор разрешений по умолчанию для объектов меню менеджера в то время как руководитель группы не могут.
Короче говоря, мы видим, что различные разрешения для администратора и менеджера группы задаются с помощью Options-> Разрешения форм на User Manager и Menu Manager экранов.
Важно также понимать, что это же Options-> Разрешения форма для настройки разрешения по умолчанию доступна для всех Joomla! объектов, в том числе Media Manager, Баннеры, Контакты, Ленты новостей, перенаправление Поиск Статистика, Ссылки, расширения, модули, плагины, шаблоны и язык. Так теперь у вас есть возможность создания групп пользователей с доработаны наборы фоновых разрешения.
Разрешения Front End
Разрешения по умолчанию для передней части также устанавливается с помощью Параметры формы. Давайте посмотрим на Content-> Статья Manager-> Options-> Permissions.

Во-первых, если мы посмотрим на разрешения для администратора и менеджера, мы видим, что в этом случае администратор может делать все действия для статей и менеджер может сделать все действия, за исключением действий администратора. Таким образом, обе группы могут создавать, удалять, редактировать и изменять состояние статей, но менеджер не может увидеть или изменения разрешения по умолчанию для статей.
Теперь, давайте посмотрим на группы издатель, редактор, автор и видеть, как их разрешения устанавливаются. Все эти группы Наследовать разрешения администратора и управления. Помните, что издателем является дочерним группы зарегистрированных и зарегистрированных не имеет разрешения по умолчанию, за исключением Войти. С Зарегистрированные не имеет разрешения для администратора и управление, а с разрешения издателя для администратора и Управление является наследование, то издатель не имеет таких разрешений либо. Это же разрешение передается от издателя и редактора из редактора Автор. Так, по умолчанию, ни одна из этих групп могут работать со статьями в задней части.
Издатель имеет Разрешить разрешения для создания, редактирования и изменения государства. Это означает, что издательство, по умолчанию, можно добавить новые статьи, редактировать существующие статьи, и изменения состояния статей. Отметим, что по умолчанию, издатели не могут удалять статьи. Однако, это может потенциально быть изменены для ребенка группы или на категории или статьи уровне в иерархии разрешений.
Редакторы наследуют те же разрешения, издатели исключением того, что они не будут предоставлять разрешение для изменения действий со стороны государства. Так редакторов можно создавать и редактировать, но не разрешено редактировать государства, которое в данном случае означает для публикации, отменить публикацию, Корзина или Архив статей. Помните, что разрешение "Запретить" не может быть переопределен для детских групп или категорий или статей. Таким образом, с этой установкой, члены редактор и ребенка группа Редактор никогда не может быть Изменить государства разрешения на любой категории или статьи.
Наконец, авторы наследуют редактор разрешений, за исключением запрета в Edit. Так, авторы могут создавать только новые статьи и не может делать любые другие действия. Опять же, так как явного запрета, это не может быть переопределен для любой категории или статьи.
Важно помнить, что, за исключением запрета настройки, эти разрешения только настройки по умолчанию для категорий и статей и для любого ребенка групп, которые создаются. Таким образом они могут быть изменены для детских групп, для категорий, и для конкретных статей.
Статья Manager & Действия Диаграмма
На приведенной ниже диаграмме показано, как каждое действие в форме разрешений относится к различные варианты на экране статьи Manager.

* Администратор позволяет просматривать и изменять параметры для компонента.
* Управление позволяет перейти к статье Manager. Без этого разрешения, никаких других действий возможны.
* Создать позволяет добавлять новые статьи.
* Удалить позволяет удалить корзины статей. Обратите внимание, что значок "Удалить" показывает только в панели инструментов, когда у вас есть "Выберите государства" фильтр установлен в "корзину".
* Изменить позволяет редактировать существующие статьи.
* Изменить государство позволяет вам публиковать, отменить публикацию, Архив, или Корзина статей.
Использование разрешений и группы уровней вместе
Как уже говорилось выше, можно определить группы в иерархии, где каждый ребенок наследует группу действия разрешения (например, создать разрешения) от родительской группы. Действие разрешения также унаследовал от уровня разрешений выше. Например, разрешение в статье Manager наследуется из того же разрешения в глобальной конфигурации, и разрешения на ребенка Категория наследуется от родителей разрешение категории.
Это двойное наследство может быть запутанным, но он также может быть полезным. Давайте рассмотрим пример, как следует. У нас есть школы с группой иерархии Учителя → учителей истории → помощник учителей истории. У нас также есть категория иерархии Задания Задания → История. Мы хотим, учителей истории и помощников учителей истории, чтобы иметь следующие разрешения:
* Обе группы могут создавать новые статьи только в категории История поручениям.
* Только учителей истории (не помощник учителей истории) может публиковать или иным образом имеют Изменить государства разрешения.
Эта схема ACL очень легко осуществить. На приведенной ниже диаграмме показано, как это будет создан для создания действий.

В диаграмме, разрешение иерархии показан в левой части и иерархии группы показано в верхней. Разрешения наследуются вниз и направо, как показано стрелками. Для реализации желаемого разрешения, мы оставляем глобальной конфигурации пробел (не указан) для всех трех групп. Кроме того, в статье Manager и Задания категории, мы оставляем Создать разрешение на наследование для всех групп. Как показано на схеме, это означает, что эти группы не имеют разрешения на создание статей в целом или для статей в групповых заданий.
Таким образом до сих пор, мы не установлены специальные разрешения, чтобы добраться до этой точки. Теперь, в категории История экрана Задания разрешения, положим Создание разрешения для обеспечения группа учителей истории. Этот параметр переопределяет мягкая (неявный) отрицать, что мы были по умолчанию и дает членам этой группы права на создание контента (статьи и дочерние категории) для этой категории. Это позволяет устанавливать также наследуется группа помощник учителей истории.
Далее, нам необходимо предоставить учителей истории Изменить разрешение государства, отрицая это разрешение помощник учителей истории. Это делается, как показано на диаграмме ниже.

Эта конфигурация же, как и выше, за исключением, что на этот раз мы поставили Изменить разрешение государства в категории История Задания Запретить для группы помощник учителей истории. Это означает, что помощник учителя истории не смогут публиковать или Отменить публикацию статей в этой категории.
Отметим, что это было достигнуто путем установки только два разрешения в категории История Задания: Разрешить для группы учителей истории и Запретить для группы помощник учителей истории.
ACL Примеры
Вот некоторые примеры того, как Вы могли бы создать ACL для некоторых конкретных ситуациях.
Back-конце статьи администратора
Проблема:
Мы хотим создать группу под названием "Статья Администратор" с серверными разрешения только для статей, а не для любого другого меню фоновых вариантов. Члены этой группы должны быть в состоянии использовать все особенности статьи менеджер, включая разграничение прав доступа статье.
Решение:
1. Создание нового ребенка называется статья администратора, как показано ниже.

Установить родительской группы для зарегистрированных. Таким образом, мы не должны изменить какие-либо разрешения в глобальной конфигурации. Новая группа наследует разрешения от зарегистрированных Войти и неявных отказать в разрешении на все другие действия.
2. Участников → Уровни доступа, редактировать особый уровень доступа, чтобы добавить новую группу. Таким образом, они могут получить доступ к заднему концу экранов.

3. В статье Manager → Функции → разрешений, изменение разрешения для разрешения для этой группы, как показано ниже.

4. На сайт → Global Configuration → разрешений на разрешения администратора Логин изменения для обеспечения Статья администратора, как показано ниже.

Вот и все, что вам нужно сделать. Члены этой группы могут Войти в задней части и делать все, что в статье Manager, но не может сделать что-нибудь еще в задней части.
