home

Модуль ELiS Access User

Модуль решает две задачи:

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

Модуль создает два поля: field_access_read_user и field_access_rw_user и назначает их папкам каталога.

В созданные поля можно вписать отдельных пользователей, при этом:

field_access_read_user[править]

Указанные в поле пользователи получают доступ на просмотр папки и всех вложенных в нее ресурсов, если только где-то ниже в таком же поле (field_access_read_user) не переопределен доступ (не назначены другие пользователи).

Т.о. права доступа наследуются по каталогу вниз.

field_access_rw_user[править]

Указанные в поле пользователи получают доступ на просмотр, редактирование, удаление папки и всех вложенных в нее ресурсов, если только где-то ниже в таком же поле (field_access_rw_user) не переопределен доступ (не назначены другие пользователи).

Т.о. права наследуются по каталогу вниз.

Как проверяется доступ к ресурсу[править]

Когда пользователь открывает ресурс, система защиты ищет поля field_access_read_user и field_access_rw_user и если их находит, берет значения из них, если не находит, поднимается по каталогу вверх в поисках нод, у которых соответствующие поля не пустые. Если находится при проходе по каталогу вверх непустое поле, сверяется если ли текущий пользователь в нем и если есть, доступ разрешается, если нет, ветка откидывается.

Если у ресурса несколько родительских папок, то проверка идет вверх по каждому родителю в поисках хоть одной ветви, предоставляющей доступ.

Взаимодействие с другими модулями доступа[править]

Поля field_access_read_user и field_access_rw_user работают каждое независимо друг от друга и от других разрешающих доступ модулей.

Предоставление доступа на уровне отдельных ресурсов[править]

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

Добавить поля можно на сайте ELiS по адресу admin/structure/types.

Установка[править]

RPM-пакет: drupal7-elis-mod-access.

Для установки выполните на сервере:

# dnf install drupal7-elis-mod-access

После чего включите модуль ELiS Access User в веб-интерфейсе.

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