Перейти к основному содержимому

Пользователи и роли

Общее

Права пользователей в Pimcore основаны на концепции пользователей и ролей. Каждый пользователь может иметь несколько ролей, и как пользователи, так и роли могут обладать правами доступа.

Пользователи и роли настраиваются в административном интерфейсе Pimcore по следующим путям: Settings > Users & Roles > Users и Settings > Users & Roles > Roles

Вкладка «Пользователи/Роли»

Добавление нового пользователя / роли

Чтобы добавить нового пользователя на вкладке Users, щелкните правой кнопкой мыши по папке, соответствующей категории нового пользователя в дереве, и выберите Add User. Аналогичным образом новый роль можно добавить на вкладке Roles.

Добавить нового пользователя

Права доступа

В Pimcore существует два уровня прав пользователей:

  1. Права на компоненты системы,
  2. Права на элементы данных (ассеты, объекты данных и документы).

Права доступа могут назначаться как отдельным пользователям, так и группам пользователей (в Pimcore они называются «ролями»). В следующих разделах описывается, как и где можно настраивать права доступа, а также как они влияют друг на друга или не влияют вовсе.

Использование ролей не является обязательным — права можно назначать напрямую пользователям. Однако при работе с большим количеством пользователей рекомендуется использовать роли. На вкладке Users/Roles можно определить, какие права назначаются конкретному пользователю или роли. При этом у отдельного пользователя есть несколько более общих настроек, чем у роли.

Системные права доступа

  • Admin — если отмечено, пользователю предоставляются все права на все системные компоненты
  • Show welcome screen on startup — показывать экран приветствия при запуске
  • Show close warning — показывать предупреждение при закрытии
  • Roles — выбор всех ролей, назначенных пользователю
  • Perspectives - какие представления perspectives доступны для данного пользователя

Ниже приведен список системных прав (доступных для пользователей и ролей) и их значение:

  • Assets — дерево ассетов отображается
  • Classes — доступен редактор классов объектов (пользователь может создавать и изменять классы объектов)
  • Clear Cache — определяет, может ли пользователь очищать кэш Pimcore (внутренний кэш и кэш ответов, если настроен)
  • Clear Temporary Files — определяет, может ли пользователь удалять временные системные файлы (например, миниатюры)
  • Dashboards — пользователь может создавать дашборды
  • Documents — дерево документов отображается
  • Document Types — пользователь может создавать и изменять предопределенные типы документов
  • Emails — пользователь видит историю электронной почты
  • Extensions — определяет, разрешено ли пользователю загружать, устанавливать и управлять расширениями
  • Glossary — записи глоссария отображаются
  • HTTP Errors — HTTP-ошибки отображаются
  • Notes & Events — заметки и события отображаются
  • Objects — дерево объектов отображается
  • Predefined Properties — пользователь может создавать и изменять предопределенные свойства
  • Recycle Bin — пользователь имеет доступ к корзине и может видеть все удаленные элементы (в том числе удаленные другими пользователями)
  • Redirects — пользователь может создавать и изменять редиректы
  • Reports — пользователь имеет доступ к модулю отчетов
  • Seemode — режим See-mode доступен или недоступен для пользователя
  • Select Options — редактор вариантов выбора
  • SEO Document Editor — пользователь имеет доступ к редактору SEO для документов
  • System Settings — пользователь имеет доступ к системным настройкам
  • Tag & Snippet Management — пользователь может создавать и изменять записи в управлении тегами и сниппетами
  • Targeting — пользователь имеет доступ к модулю таргетинга
  • Thumbnails — пользователь может создавать и изменять конфигурации миниатюр
  • Translations — определяет, может ли пользователь просматривать и редактировать переводы сайта
  • Users — определяет, может ли пользователь управлять настройками других пользователей и их системными правами
  • Website Settings — пользователь может создавать и изменять настройки сайта

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

Права на элементы — рабочие области

Помимо прав, описанных выше, доступ пользователя может быть ограничен на уровне отдельных элементов. Это можно сделать, определив рабочие области (workspaces) для пользователя или роли. При условии, что у пользователя в целом есть доступ к документам, можно указать, что именно пользователь или роль может или не может делать с каждым документом или рабочей областью. То же самое относится к объектам данных и ассетам. Эти настройки управляются на вкладке Workspaces пользователя или роли.

Пользователю необходимо предоставить доступ как минимум к одной рабочей области. Пользователь не может получить доступ к ресурсам за пределами своих рабочих областей.

При этом необходимо учитывать несколько общих правил для прав на элементы:

  • если у пользователя нет права на просмотр списка элемента (List), все остальные права становятся недействительными;
  • если у пользователя нет права List для элемента, все права на дочерние элементы этого элемента также становятся недействительными.

Пользовательские рабочие пространства

Права пользователей на уровне элементов суммируются следующим образом:

  • list — данный элемент (и возможные дочерние элементы) может отображаться в дереве
  • view — данный элемент (и возможные дочерние элементы) может быть открыт
  • save — данный элемент (и возможные дочерние элементы) может быть сохранен (кнопка сохранения доступна)
  • publish — данный элемент (и возможные дочерние элементы) может быть опубликован (кнопка публикации доступна)
  • unpublish — данный элемент (и возможные дочерние элементы) может быть снят с публикации (кнопка снятия с публикации доступна); не применяется к ассетам
  • create — могут быть созданы новые дочерние элементы (не применяется к ассетам)
  • delete — данный элемент (и возможные дочерние элементы) может быть удален
  • rename — имя данного элемента (и возможных дочерних элементов) может быть изменено
  • settings — настройки данного элемента (и возможных дочерних элементов) могут управляться, то есть вкладка настроек доступна; право settings также определяет путь и, соответственно, право перемещать элемент в дереве
  • versions — вкладка versions доступна
  • properties — вкладка properties доступна и может редактироваться

Отдельные пользователи получают доступ ко всем определенным рабочим областям всех ролей, к которым они относятся. Помимо этого, у пользователей могут быть собственные рабочие области. Они добавляются к правам, полученным через роли.

Например, роли myRole предоставлены права list и view для пути /home/myPath. Редактор пользователя включает роль myRole и, таким образом, наследует все настройки рабочих областей этой роли. Если у редактора есть собственные настройки рабочих областей для /home/myPath, эти права добавляются к правам, полученным через роли.

Внимание: если индивидуальные права пользователя для одной и той же рабочей области отличаются от прав, назначенных через роль, приоритет имеют индивидуальные права пользователя. Это означает, что если пользователю как отдельному пользователю назначено меньше прав, чем через роль, права роли также будут переопределены.

Например, пользователю назначено только право List для рабочей области, тогда как роль определяет для той же рабочей области права List, View, Save и Publish. Поскольку индивидуальные права пользователя более ограничены, пользователь сможет только видеть дерево рабочей области в пределах прав List.

Также возможно ограничить доступ к локализованным полям на уровне языка. По умолчанию пользователи могут просматривать и редактировать (при наличии соответствующих прав на объекты) все локализованные поля. Теперь этот доступ может быть ограничен подмножеством языков.

Панель конфигурации доступна через колонку Special Settings. В том же диалоговом окне также можно указать доступные для пользователя пользовательские макеты (custom layouts).

Пользовательские рабочие пространства

Динамическое управление правами доступа к элементам

С помощью события Pimcore\Event\ElementEvents::ELEMENT_PERMISSION_IS_ALLOWED можно динамически изменять права доступа пользователя к конкретному элементу по запросу.

Обратите внимание: при выводе списков (дерево, поиск и т.д.) это событие вызывается после для каждого элемента отфильтрованного списка результатов. Поэтому в случае предоставления права list для элемента, доступ к которому запрещен (list = 0), это НЕ влияет на условия фильтрации и результаты списка (так как элемент все равно считается разрешенным для целей фильтрации).


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.