MODX Revolution установка прав контент-менеджера

Опубликовано: 06 Ноя 2014

Взято отсюда.

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


Начинаем! Входим в меню "Безопасность--Контроль доступа":

Далее вкладка  "Политика доступа":

Создаем  новую политику для менеджера:

Имя политики: Manager, шаблон: AdministratorTemplate.

Сохраняем  созданную политику. Она обязана появиться в списке политик ниже:

Редактируем её:


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

Убираем доступ к страничкам и действиям, сопряженным с правами доступа, убрав галочку рядом с параметром access_permissions:

Точно так же проделываем с другими параметрами:
dashboards Возможность просмотра и управления панелями.
element_tree Просмотр дерева элементов в левой панели.
menu_reports Показ в верхнем меню пункт «Отчёты».
menu_security Показ в верхнем меню пункт «Безопасность».
menu_system Показ в верхнем меню пункт «Система».
menu_tools Показ в верхнем меню пункт «Инструменты».
new_static_resource Создание новых статичных ресурсов.
remove_locks Удаление всех блокировок на сайте.
Дальше не забываем сохранить изменения.

Сейчас переходим на вкладку "Роли":

Создаем  новую роль для менеджера:

Ранг задается любой от 0 до 9999 не включая. Так как 0 применяется для роли администратора, а 9999 для роли типичного посетителя. Имя роли задаем: Manager. Хочется заметить, что дальше буду для всех объектов задавать имя Manager, для собственного комфорта, однако имя может быть любым.

Сберегаем изменения и переходим на вкладку "Группы пользователей":

Создаем новую группу для менеджера:

Имя группы: Manager.

Сохраняем группу, потом отыскиваем её в списке и выбираем для редактирования:

На вкладке где представлена общая информации видно, что эта группа располагает в качестве родительской группу администратора, так как мы организовали её внутри этой группы. Однако это применяется скорее для комфорта восприятия, вследствие этого, в случае если вынести её из родителя,  ничего не изменится.

Переходим на вкладку "Доступ к контекстам":

Прибавим свежий контекст:


Контекст mgr определяет права для работы с админкой. В этом случае мы задаем необходимую малую роль для него: Manager - 9 и политику доступа Manager, организованную прежде, которая и определяет перечень прав менеджера.
Сохраняем созданный контекст. И прибавим ещё один:


Контекст web определяет права доступа к ресурсам (страничкам). К ним относится редактирование, и создание, и сохранение изменений, а так же удаление и другое. Малая роль - Manager - 9, а политика доступа - Administrator (так как любые действия с ресурсами допустимы).
Далее нужно сохранить контекст и все изменения на страничке группы ресурсов.
Далее переходим в меню "Безопасность--Управление пользователями":


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

Судя по всему все. Можно выйти из под учетной записи админа и зайти в админ. панель как менеджер. Однако имеется еще момент!
В этом случае менеджер располагает доступом к файловой системе, а конкретно - ко всем файлам этого сайта на сервере. Для того чтобы локализировать доступ к ним, нужно сформировать новый источник файлов только для менеджера.
Для данного нужно зайти в меню "Инструменты--Источники файлов":


Вначале в перечне источников лишь главный источник: Filesystem. Сначала нужно ограничит доступ к нему.  Открываем страничку редактирования источника Filesystem. Дальше на вкладке "Права доступа" прибавим группу пользователей, которой желаем дать доступ:


Определим группе: Administrator, наименьшею роль: SuperUser - 0 и политику: MediaSourceAdmin.
Незамедлительно после сохранения абсолютно у всех пользователей, не имеющих отношение к указанной группе и роли, исчезнет доступ в источнику файлов Filesystem. Одновременно, данные пользователи не увидят этого источника в перечне на страничке инструментов!
Впоследствии возвратимся к перечню источников и организуем новейший источник для менеджера - PicturesManager. Предположим в данном источнике будут сохраняться иллюстрации к статьям:


Сохраним сделанный источник. Сейчас отыщем его в перечне и отредактируем его параметры.
На вкладке общих данных внизу имеется перечень параметров. Нас интересуют в данный момент первые 4. Другие параметры назначены по умолчанию исключительно хорошо, в частности для применения источника как хранилища изображений.
Нужно установить главный путь (basePath) к источнику и главный путь для ссылок на файлы источника (baseUrl). При данном пути должны задаваться с учетом параметров basePathRelativeи baseUrlRelative, коие в значении "Да" несут ответственность за вставку в начало пути - пути к папке веб-сайта на сервере. Тоесть окончательный путь складывается из 2-ух частей:
/var/www/site_name/ иmanager/template/tpl_name/pictures/
Первоначальная часть прописывается в "Опциях системы" ModxRevo. Однако её касаться не нужно, традиционно по умолчанию она стоит верная. Здесь вам необходимо сменить tpl_name на заголовок вашего шаблона для веб-сайта и сделать папку pictures.
В итоге, параметры baseUrlи basePath устанавливаются в значение:
manager/template/tpl_name/pictures/
Параметры basePathRelative и baseUrlRelativeв значение: "Да".
Пред  установкой прав доступа для менеджера к  источнику, нужно обратить внимание на том, что в последствии задания прав, источник не будет доступным для учетной записи админа, в том числе и для редактирования.
Одно средство поправить данное - зайти в меню "Безопасность - Контроль доступа". Открываем для редактирование группу менеджера: Managerи во вкладке "Источники файлов" отыскать и удалить источник PictureManager. Лишь тогда мы сможем снова редактировать этот источник из под админа.
Однако самое основное  не это, а то, что в случае если на какой-нибудь страничке применяется tv параметр с типом ввода "Изображение", тоесть tv, который конкретно обращается к какому-то источнику файлов, то для него нужно задать источник файлов PictureManager прежде, чем устанавливать права менеджера на него, иначе затем мы данное сделать не сможем.
Заходим в свойства необходимого нам tv параметра на вкладку "Источники файлов" и определяем для контекста web наш источник файлов, 2 раза кликнув на "Кэшированный код ресурса", сохраняем изменения.
И лишь после сего можно  задать права доступа для источника файлов PictureManager:


 Задаем группу пользователей: Manager, наименьшую роль: Manager-девять и политику: MediaSourceAdmin. Немедленно после сохранения источник файлов пропадет для администратора (метод возврата оговаривался ранее), а tv параметры с определенным источником файлов PictureManager перестанут быть редактируемыми из под учетной записи админа. При этом проявляется при попытке админом сохранить страничку, которая применяет данный tv, в силу чего значение tv сбрасывается и картинка исчезает со странички.
Из тех промахов, что я поймал под час пользования.
Во время использовании сниппета Articles, под час вывода списка статей с  изображениями, в случае если изображения предназначались как tv параметры из под учетной записи менеджера (с применением его источника файлов), то эти изображения прекращали выводиться, при этом лишь в списке статей и лишь для сниппета Articles(тоесть getResources в чистом виде отрабатывает отлично). Сущность задачи в том, что ошибочно создается путь к изображению. А поточнее, он не создается абсолютно. Выводиться лишь его имя. Делему решил прибавлением костыля в виде сниппета image_path:

$base_path = $modx->getOption('base_path');
return $base_path.'manager/templates/tpl_name/pictures/'.$input;

Этот сниппет обретает главный путь к папке интернет-сайта: $base_path, потом прибавляет его и равным образом путь к источнику PictureManager к наименованию изображения, которое заключается в переменной $input. Значение для $input берется из tv.articleimage при вызове сниппета image_path:

[ [+tv.articleimage:image_path]]

Комментарии (0)


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




Разрешённые теги: <b><i><br>Добавить новый комментарий: