home

Модуль ELiS Access Organization

Модуль решает задачу предоставления пользователям организации (группе пользователей) прав на чтение и запись во все ресурсы, вложенные в определенную папку.

Модуль создает поле: field_access_rw_organization и назначает его папкам каталога.

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

field_access_rw_organization[править]

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

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

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

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

Когда пользователь открывает ресурс, система защиты ищет поле field_access_rw_organization у открываемой ноды и если его находит, сравнивает с организациями текущего пользователя. Если у текущей ноды поле не заполнено, происходит подъем по каталогу вверх в поисках нод, у которых поле field_access_rw_organization не пустое. Если находится при проходе по каталогу вверх непустое поле и совпадает хоть одна организация в поле и хоть одна ассоциированная с пользователем организация - доступ разрешается, если нет, ветка откидывается.

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

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

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

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

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

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

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

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

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

# dnf install drupal7-elis-mod-access

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

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