Печать
Просмотров: 53253

Попытка описания системы прав доступа phpBB 3.0.x

[url=http://www.phpbbguru.net/kb/administration/permissions-system/]Система прав доступа phpBB 3.0.x[/url]

Содержание


Введение
Что такое право доступа?
Типы прав доступа.
Сфера действия права.
Функциональная область права.
Расстановка прав доступа.
Роли.
Интерфейс управления правами доступа.
Глобальные права доступа.
Локальные права доступа.
Роли.
Маски прав доступа (трассировка прав).
Исключения.
Несколько практических советов.
FAQ.
Ссылки.

 


Введение



Каждый администратор после установки конференции и создания на ней некоторого количества форумов сталкивается с необходимостью реализовать свои представления о "правилах игры": кому, где, что и в какой степени позволено на его конференции. В phpBB 3.0.x для этого имеется мощный инструмент - система прав доступа. Она достаточно сложна и без понимания определённых положений, на которых она основана, может вызвать затруднения (при попытках настройки "методом тыка"). Попробуем рассмотреть основные функциональные особенности этой системы.

Нужно отметить, что в некоторых статьях, размещённых на официальном сайте phpBB, права классифицируются немного по другому. Поэтому, данный материал не следует рассматривать как часть официальной документации по phpBB 3.0.x. Это всего лишь ещё один взгляд на систему прав, и он не претендует на "безгрешность". Если вы заметили ошибки или неточности, пожалуйста оставьте свой комментарий.

В материале иcпользуется терминология, принятая для русской версии локализации phpBB 3.0.x.

 


Что такое право доступа?



Под конкретным правом доступа понимается разрешение на совершение какого-либо действия или обладание какой-либо возможностью. Например, "Может видеть форум" (то есть, видеть заголовок форума в списке форумов), "Может читать форум" (то есть, имеет возможность перейти на страницу отображения списка тем форума и далее в темы), "Может создавать темы" или "Может отвечать в темах" (то есть, создавать новые темы или отвечать в существующих) и т.п.

 


Типы прав доступа.



При расстановке прав доступа следует учитывать два аспекта:


Сфера действия права.



С этой точки зрения все права можно разделить на:


Функциональная область права.



Все права разделены на следующие типы:

permissions_table

Список всех прав доступа можно посмотреть здесь

Важным для понимания является тот факт, что по функциональным областям (типам) права не дублируются и не перекрываются. Каждый тип прав существует независимо от другого. Пользователю могут быть присвоены максимальные Администраторские права, но он не сможет редактировать чужие сообщения, потому что не имеет соответствующего Модераторского права, или не сможет видеть форумы на индексной (главной) странице конференции, потому что не имеет соответствующего Права доступа к форумам.

Все права могут быть назначены как индивидуально, так и группе. Назначение прав группе пользователей даёт тот же результат, что и индивидуальное назначение аналогичных прав всем членам данной группы. Но "групповой" метод, помимо очевидной экономии времени и сил, имеет то преимущество, что пользователь обладает групповыми правами только тогда, когда он является членом данной группы, что весьма удобно. Поэтому для создания хорошо структурированной и легко управляемой системы прав доступа на вашей конференции можно рекомендовать как можно реже использовать индивидуальное назначение прав. Преимущественный метод заключается в помещении пользователей в группы и в назначении прав группам.

 


Расстановка прав доступа.



В конечном итоге, все права устанавливаются для конкретного пользователя. Но каждый пользователь может рассматриваться как член различных групп, для которых установлены различные права. Таким образом, в конкретном форуме конкретное право для конкретного пользователя может одновременно иметь различные значения. И это является ещё одним весьма важным аспектом.

Возможны три варианта значения настройки права:


Эти три значения - НЕТ, ДА, НИКОГДА - позволяют для пользователя иметь более одной настройки конкретного права через участие в нескольких группах. И итоговое, действующее в конкретном форуме право будет зависить от того, какая настройка в данном случае будет сильнее. При создании новой группы или нового форума по умолчанию права для них не установлены (настройки всех прав находяться в значении НЕТ), если только вы не использовали при создании опцию "Копировать права доступа" из существующей группы или форума.


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



 

 

 

Роли.



В системе прав доступа роли используются для создания различных наборов прав доступа, отражающих наиболее типичные и часто используемые ситуации. Например, форумная роль Доступ только для чтения: имеется доступ к чтению форума, но без возможности создавать новые темы или отвечать на сообщения. PhpBB 3.0.х поставляется с рядом уже настроенных ролей: 22 роли, разделенные на 4 группы в соответствии с функциональными типами прав. Использовать "ролевой" способ вместо "точечного" для расстановки прав доступа весьма удобно. Вместо того, чтобы проверять каждый переключатель настроек вручную, вы можете задать предварительно роль в раскрывающемся списке и получить требуемый результат, как говориться, в один щелчок мышки. Но роли не только простой и быстрый способ настройки прав доступа, они также являются весьма мощным инструментом. Вы можете создавать свои собственные роли и редактировать уже существующие. Роли являются динамическими, поэтому, когда вы измените роль, для всех групп и пользователей, которым назначена данная роль, автоматически пере определятся права доступа.

 


Интерфейс управления правами доступа.



Итак, познакомившись с основными положениями системы прав доступа, вы теперь без труда сориентируетесь в интерфейсе управления правами доступа в администраторском разделе. Сначала он может показаться запутанным, с излишним дублированием. Но это не совсем так. Пункты меню просто отражают различные возможные сочетания типов, методов и способов расстановки прав.

800px-Admin_permission

 

Итак, сверху - вниз:

Первый раздел меню касается настройки Глобальных прав.


Глобальные права доступа
Права пользователей
Права групп
Администраторы - далее следует форма выбора пользователя или группы.
Супермодераторы - далее следует форма выбора пользователя или группы.



Пункты меню Права пользователей и Права групп предлагают сначала выбрать пользователя или группу (индивидуальный или групповой метод) и ведут на страницу настройки прав, где через выпадающее меню можно менять тип прав (Пользовательские, Модераторские или Администраторские) и применить или ролевой способ (через выпадающее меню с перечнем существующих ролей для данного типа прав), или "точечный" с помощью ссылки Расширенные права. Форма "точечного" способа расстановки прав представляет собой несколько вкладок, на которых все права выбранного типа сгруппированы по функциональным признакам: Размещение сообщений, Действия с темами, Опросы и т.п. На вкладках перечислены наименования конретных прав и имеются три колонки значений (ДА, НЕТ, НИКОГДА) с "точечным" переключателем (radiobutton). Если все права на вкладке разрешены (все значения ДА), то вкладка помечена зелёным квадратом, если запрещены (все значения НИКОГДА) - красным, если не установлены (все значения НЕТ) - розовым, если на вкладке есть права с различными значениями - фиолетовым. Сама ссылка Расширенные права помечается звёздочкой (*), если текущие настройки не совпадают ни с одной существующей Ролью.

Пункты меню Администраторы и Супермодераторы сразу ограничивают область ваших действий одним типом прав (Администраторскими или Глобальными Модераторскими соответственно) и ведут на страницу выбора метода: индивидуального или группового. Форма выбора пользователя или группы представляет собой страницу с 4-мя окнами, в две строки и две колонки. Левая колонка - пользователи, правая - группы. Окна в верхней строке отображают пользователей и группы, которым уже установлены права данного типа. Их можно удалить (сбросить настройку права в значение НЕТ) или отредактировать. Окна в нижней сроке - для добавления права пользователям или группам, которым права данного типа ещё не были установлены. Далее вы попадаете на страницу настройки прав, где можете применить ролевой или точечный способы. Естественно, выпадающего меню для смены типа права уже не будет, так как тип права был определён в самом начале.

Таким образом, как вы уже вероятно заметили, одного и того же результата можно добиться разными путями. Например, вы захотели всем пользователям разрешить просматривать информацию о любом сообщении:

  1. Первый путь: Права групп => Выбор группы "Зарегистрированные пользователи" => Выбор типа права "Глобальные права модератора" => Выбор точечного способа "Расширенные права" => Выбор вкладки "Разное" => Установка значения ДА для права "Может просматривать информацию о сообщении".
  2. Второй путь: Супермодераторы => Выбор группы "Зарегистрированные пользователи" в нижнем окне добавления прав => Выбор точечного способа "Расширенные права" => Выбор вкладки "Разное" => Установка значения ДА для права "Может просматривать информацию о сообщении".

Второй раздел меню касается настройки Локальных прав. Меню здесь построено также, как и в первом разделе.

Локальные права доступа 
Доступ к форумам - далее следует выбор форума (или форумов), затем форма выбора пользователя или группы.
Модераторы форумов - далее следует выбор форума (или форумов), затем форма выбора пользователя или группы.
Форумные права пользователей
Форумные права групп

Пункты меню Форумные права пользователей и Форумные права групп сначала предлагают выбрать пользователя (или группу), затем форум (или форумы, можно выбрать несколько) и ведут на страницу настройки прав, где через выпадающее меню можно менять тип прав (Права доступа к форуму или Модераторские) и применить или ролевой способ (через выпадающее меню с перечнем существующих ролей для данного типа прав), или "точечный" с помощью ссылки Расширенные права. 

Пункты меню Доступ к форумам и Модераторы форумов сразу ограничивают область ваших действий одним типом прав (Права доступа к форумам или Модераторским соответственно), затем предлагают выбрать форум (или форумы), и ведут на страницу выбора метода: индивидуального или группового. Далее вы попадаете на страницу настройки прав, где можете применить ролевой или точечный способы. Естественно, выпадающего меню для смены типа права уже не будет, так как тип права был определён в самом начале. Следует отметить, что в случае выбора нескольких форумов для настройки\изменения прав вы можете, используя ролевой способ, сразу изменить права на всех выбранных форумах, нажав кнопку Применить все права.

800px-Change_permission


Если вы нажмёте ссылку Расширенные права под каким-либо из выбранных форумов (точечный способ), то для сохранение изменений следует нажать кнопку Применить права в открывшейся форме, и данные изменения будут сделаны только для этого форума.

800px-Change_permission1

Чтобы данные изменения скопировались на другие выбранные форумы следует отметить чекбокс слева от названия форума и затем уже нажать кнопку Применить права.

Третий раздел ведёт на страницы управления ролевым инструментом. На них вы можете создавать, редактировать, удалять роли. Пункты меню в соответствии с типами прав.

Роли
Администраторские роли
Пользовательские роли
Модераторские роли - есть и глобальные, и локальные.
Форумные роли

Четвёртый раздел ведёт на страницы использования инструмента для просмотра действующих значений прав. Здесь вам также будет предложено выбрать пользователя или группу, а для локальных прав предварительно определиться с форумом (или форумами).

Маски прав доступа
Права администраторов - Администраторские права.
Права пользователей - Глобальные пользовательские права.
Права супермодераторов - Глобальные модераторские права.
Права модераторов - Локальные модераторские права.
Локальные права - Права доступа к форумам (локальные пользовательские права).

На этом разделе стоит остановиться поподробнее.
Во-первых, этот раздел предназначен только для просмотра. Поэтому в итоге вы получаете страницу с формами отображения прав, аналогичными формам "точечного" способа расстановки прав по ссылке Расширенные права, но без возможности изменения значений, то есть без "точек" (radiobutton). И пусть вас не удивляет отсутствие на вкладках колонки со значением НЕТ. Вам показываются итоговые (результирующие) значения прав, а они всегда сводятся к одному из двух: либо право разрешено (значение ДА), либо запрещено (значение НИКОГДА).

800px-Trassir

Во-вторых, в случае выбора конкретного пользователя, вы имеете возможность просмотреть как же именно складывается это самое итоговое (результирующее) значение конкретного права. Для этого нужно нажать на кружок со стрелкой "Отследить настройки" слева от наименования права. В отдельном окне вы увидите перечень всех групп, в которых состоит данный пользователь, и как, в зависимости от значений групповых и индивидуальных настроек, образуется итоговое (результирующее) значение настройки данного права. Эта операция называется трассировкой права. Она чрезвычайно полезна, когда вы обнаруживаете, что пользователь обладает каким-либо "излишним", с вашей точки зрения, правом или наоборот, он не может делать то, на что он, с вашей точки зрения, должен иметь право. С помощью трассировки вы сможете обнаружить как именно (на каком этапе) образуется итоговое значение настройки права.

800px-Trasir1

Для удобства на других вкладках администраторского раздела продублированы практически все (за исключением Ролей) выше перечисленные пункты меню. Так, на вкладке Форумы вы найдёте все пункты раздела Локальные права доступа, поскольку они все имеют отношение к форумам. На вкладке Пользователи и группы вы найдёте пункты глобальных и форумных прав пользователей и групп. На странице Управления пользователями вы через выпадающее меню "Выбрать форму" можете перейти на страницу просмотра (Маски прав доступа) всех прав данного пользователя, как глобальных (администраторских, пользовательских и модераторских), так и локальных, по конкретному форуму (форум выбирается через выпадающее меню). Там же есть две ссылки: Установить пользовательские права (ведёт на страницу Права пользователей) и Установить локальные права (ведёт на страницу Форумные права пользователей).



 

Исключения.


  1. Модераторские права могут быть глобальными и локальными, за исключением прав: "Может объявлять предупреждения" и "Может управлять блокировкой", которые могут быть назначены только глобально. Это означает, что вы не сможете дать право объявлять предупреждения и\или блокировать (банить) пользователей модератору только в одном конкретном форуме. Он будет иметь такую возможность во всех форумах, даже там, где он не является модератором.
  2. Все права разделены на 4 группы в соответствии с функциональными типами прав и не повторяюся, за исключением прав: "Может прикреплять вложения", "Может скачивать файлы", "Может использовать подпись", "Может игнорировать флуд-контроль", которые присутствуют как глобальные в группе Пользовательских прав, и как локальные в группе Прав доступа к форумам. Учитывая, что право на одно и то же действие (например, прикреплять вложения) может определяться в разных группах прав, вам следует быть внимательным при настройках. Иными словами, по этим 4 действиям вам нужно отслеживать итоговые значения как Права доступа к форумам (локального), так и Пользовательского (глобального) права, чтобы быть уверенным, что настройки соответствуют вашим желаниям. Если оба итоговых значения ДА - в данном месте право разрешено, если хотя бы одно итоговое значение НИКОГДА - в данном месте право запрещено, если итоговое значение глобального права НИКОГДА - право везде запрещено.
  3. Значение настройки права НИКОГДА (право запрещено) более сильное и перекрывает значение ДА (право разрешено), за исключением Модераторских прав, которые могут быть назначены как глобально, так и локально. И значение ДА настройки конкретного права, если оно назначено глобально, будет сильнее значения НИКОГДА того же права, назначенного локально. Это означает, что если в каком-либо форуме вы запретите пользователю, например, удалять чужие сообщения, но данному пользователю у вас назначена роль Супремодератора, где все права, в том числе и право "Может удалять сообщения", назначены глобально, то он по-прежнему будет иметь возможность удалять сообщения в этом форуме. Право будет считаться разрешённым. (смотри картинку выше)
  4. Если у пользователя включена опция "Основатель" (Управление пользователями - форма Обзор), то данному пользователю будут разрешены (значение ДА) все администраторские права, и они не могут быть запрещены (значение НИКОГДА) или сброшены (значение НЕТ) никакими другими настройками.

 


Несколько практических советов.

 

  1. Используйте преимущественно групповой метод расстановки прав. Групп всегда меньше, чем пользователей.
  2. Используйте преимущественно ролевой способ расстановки прав. Если вас не устраивают уже имеющиеся роли, вы легко можете добавить к ним собственные, настроив их так, как вам удобно.
  3. Учтите, что по умолчанию на вновь установленной конференции группе Администраторы присвоена роль Стандартный администратор, то есть члены этой группы, кроме Основателя, не могут устанавливать модули, стили, языковые пакеты, управлять списком жалоб, осуществлять массовую рассылку email, изменять права доступа.
  4. По умолчанию на вновь установленной конференции администратор помещён в группу Супермодераторы, которой присвоена роль Супермодератор, для того, чтобы он имел все модераторские права. Возможно вы захотите убрать его из этой группы, тогда не забудьте присвоить ему (или всей группе Администраторы) роль Супермодератора.
  5. Администраторы и Супермодераторы должны иметь все модераторские права, назначенными глобально, для того, чтобы иметь возможность модерировать любой доступный (видимый) им форум. Поэтому, если вы хотите иметь модераторов, ограниченных в правах, не помещайте их в группу Супермодераторы. Создайте группу Модераторов форумов, и назначьте этой группе соответствующую локальную модераторскую роль для всех форумов. А если вы хотите чтобы некоторые модераторы из этой группы обладали модераторскими правами только в некоторых форумах, вам следует индивидуально запретить им модераторские права (установить все значения в НИКОГДА) для тех форумов, где они не являются модераторами.
  6. По умолчанию на вновь установленной конференции группам Администраторы и Супермодераторы присвоена пользовательская роль Все возможности. И это правильно. Группе Зарегистрированные пользователи присвоена пользовательская роль Стандартные возможности. Этого тоже вполне достаточно. Но возможно вы захотите ограничить некоторые права, разрешённые этой ролью. Например, такие как: "Может менять email-адрес" и "Может прятать статус присутствия". Учтите также, что группе Гости по умолчанию роли не присвоено, но из глобальных пользовательских прав разрешено скачивать файлы и использовать Поиск.
  7. Большинству форумов на конференции требуются, как правило, одинаковые права доступа к форуму. Поэтому удобнее настроить права для одного форума и скопировать их на остальные через управление форумами (вкладка Форумы). В качестве эталонного форума можно использовать Тестовый форум, который создаётся на конференции при её инсталяции. По умолчанию на вновь установленной конференции для Тестового форума присвоены следующие форумные роли:
    • Группе Администраторов - Полный доступ.
    • Группе Супермодераторов - Стандартный доступ с опросами. Учтите, что в данной роли не установлены права: "Может создавать объявления", "Может прилеплять темы", "Может вкладывать флэш-файлы", "Может закрывать свои темы", "Может игнорировать флуд-контроль". Возможно более правильно присвоить группе Супермодераторы форумную роль Полный доступ.
    • Группе Зарегистрированные пользователи - Стандартный доступ.
    • Группе Гости - Доступ только для чтения.
    • Группе Боты - Доступ для Бота.
  8. В форумной роли Нет доступа все права не установлены (все значения НЕТ). Возможно более правильно отредактировать эту роль и установить значение НИКОГДА настройки прав: "Может видеть форум" и "Может читать форум". Это позволит гарантированно использовать эту роль для предотвращения доступа к форумам, без опасения, что где-нибудь по данным правам значение настройки ДА окажется сильнее.
  9. Учтите, что многие разрешённые вами права (связанные с аватарами, BBCode, вложениями, Личными сообщениями, email и др.) будут эффективны только в том случае, если соответствующие функции будут включены в настройках конфигурации вашей конференции.

 


 

FAQ.

Небольшой FAQ (наиболее часто задаваемые вопросы).

 


Ссылки.

 

Если вы в достаточной степени владеете английским языком, вы можете почитать другие материалы на тему прав доступа на официальном сайте phpBB.

Setting permissions
phpBB3 Permissions
Permission System Overview For MOD Authors
Permission System Overview For MOD Authors - Part Two

Если вы заметили ошибки или неточности, пожалуйста оставьте свой комментарий. Надеемся, что эта статья оказалась для вас полезной.
И помните, phpBB - это просто!

Joomla SEF URLs by Artio