В дополнение к ряду основных инструментов защиты форм Chronoforms и предотвращения спама (Captcha, Google reCaptcha, Security Question, Security image и Honeypot), разработчиками компонента реализована возможность управления правами пользователей на доступ к форме.

Функционал Chronoforms предусматривает разграничение прав пользователей на уровне формы, не затрагивая установленных разрешений на всю страницу сайта.

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

В обеих версиях Chronoforms функции управления правами пользователей есть, но реализованы они по-разному и возможности их также отличаются.

Разграничение прав пользователей для форм Chronoforms 6

«Доступ разрешен» (Public) — глобальная настройка на уровне формы, которая определяет общий доступ к ней на сайте. Она находится в списке форм в панели управления компонентом и представляет собой переключатель. При установке переключателя в положение «Отключено», форма не будет доступна на сайте ни одной из групп пользователей, включая группу «Super Users». По сути, отключение этой настройки равнозначно снятию формы с публикации.

«Управление доступом отключено» (Permissions deactivated) — вторая глобальная опция, которая определяет саму возможность осуществления каких-либо настроек прав для данной формы. Этот переключатель находится на странице «Главная» (Basic) в редакторе формы (внизу). Если установить его в положение «Включено», сохранить и закрыть форму, то при следующем входе в редактор инструменты, отвечающие за настройку разрешений, отображаться не будут, а все установленные настройки прав для всей формы, будут сброшены до дефолтных.

Настройка прав доступа к форме осуществляется при ее редактировании во вкладке «Управление доступом» (Access control).

Вкладка управления доступом в редакторе формы Chronoforms 6

Рис. 1

По умолчанию разграничение прав доступа неактивно, если не установлено хотя бы одно из разрешений в списке. Если хотя бы один из переключателей прав доступа задействован, активируются разрешения для всего списка. В этом случае необходимо произвести полную донастройку разграничения прав для всех групп пользователей в списке, выбирая одно из значений переключателя («Inherited» — унаследовано, «Allowed» — разрешено, «Denied» — запрещено, «Banned» — бан). В противном случае группы пользователей, для которых разрешение установлено не было, не будут иметь права доступа к форме (или полю).

Cледует учитывать, что разрешения — наследуемый параметр. Это означает, что при запрете каких-либо действий пользователям родительской группы, в доступе к этим же действиям будет отказано пользователям всех дочерних групп. Чтобы этого избежать, не нужно использовать «Denied», если вы действительно не хотите запретить доступ к форме определенной группе и всем ее дочерним группам. Вместо этого можно использовать опцию «Inherited».

Настройка управления правами пользователей в редакторе формы Chronoforms 6

Рис. 2

На рис. 2 группа «Guest» (гости) имеет права доступа к просмотру и использованию формы. Но зарегистрированные пользователи (группа «Registered»), как и все остальные группы, после авторизации на сайте форму не увидят, поскольку для них разрешение не установлено (или не унаследовано от родительских групп).

Обработка событий также предусматривает управление правами доступа. Но, помимо описанных выше опций, здесь есть возможность управления правами доступа к форме отдельно взятых пользователей вне зависимости от того, в какую группу они входят. Они обозначаются в системе как «Owner» (владелец). Для управления правами этих пользователей нужно определить значение доступа, указать идентификатор пользователя (из списка в Joomla) и определить действие системы на случай отказа в доступе.

Параметры «ID владельца» (Owner id value) и «Действие при отказе в доступе» (On access denied) могут быть указаны как в виде собственных значений, так и в форме команд chrono syntax (шоткоды).

Настройка прав отдельных пользователей по их идентификатору в Joomla на формах Chronoforms 6

Рис. 3

На рис. 3 приведен пример, когда доступ к форме разрешен пользователю с идентификатором 856. Никто из остальных пользователей не увидит форму. Для них всех выводится сообщение на сайте «Извините, но вы не являетесь пользователем, которому доступ к форме разрешен».

Управление правами пользователей осуществляется так же на уровне отдельно взятых элементов формы. Такие функции имеют секции, некоторые поля и контейнеры. Здесь можно настраивать все, описанные выше функции управления правами пользователей.

Управление правами пользователей на уровне полей в Chronoforms 6

Рис. 4

Управление правами пользователей в Chronoforms 5

Управление правами пользоавтелей в Chronoforms 5 осуществляется только на уровне формы или ее страницы в целом. Для этой цели предусмотрен инструмент «Authenticator», представляющий собой функцию-обработчик событий.

Для реализации разграничения прав нужно открыть форму для редактирования и перейти во вкладку «Установка» (Install), после чего выбрать элемент «Authenticator» из списка группы «Security», который находится в меню слева.

Управление правами пользователей на уровне формы в настройках обработчиков событий в Chronoforms 5

Рис. 5

Настройка инструмента «Authenticator» производится аналогично настройке вкладки «Права» (Permissions) для событий формы в Chronoforms 6 (вкладка «Настройка» (Setup)).

Далее в область собственных событий элемента «Authenticator» помещаются остальные обработчики, которые необходимы для функционирования формы (например, «HTML (Render Form)» — в «On Success», «Display Message» — в «On Fail» и т. д.). То же самое нужно сделать для события «submit» и пользовательских событий, если таковые есть.