Модуль term_access
Прислано: axel
пн, 07/06/2004 - 15:49
Некоторое время назад для одного проекта мне понадобились более серьезные разграничения прав, чем те что предоставляет Drupal. Повозившись с groups (автор Gerhard Killesreiter) - единственным модулем который сейчас предоставляет полноценный механизм разграничений по элементам таксономии и отдельным документам, пришел к выводу, что слишком уж это сложно в администрировании (если админу в groups разобраться не будет проблемой, то редактору сайта, не знакомому с техническими подробностями легко будет наделать ошибок). Да и функциональность предлагаемая groups является лишней во многих случаях. Мне же требовалась простая вещь - ограничить доступ пользователей к отдельным разделам сайта, которые удобно укладывались в элементы таксономии.
Так появился модуль term_access, суть которого в ограничении видимости элементов таксономии для определенных ролей пользователей. В отличие от groups, который вовсе выкидывает роли пользователей из Drupal, заменяя их собственной концепцией групп пользователей, в term_access привязка прав осуществляется к ролям. Каждому элементу таксономии становится возможным указать список ролей, которым этот элемент будет виден (соответственно это определяет видимость документов, которые соотнесены с данным элементом). Если прав нет - пользователь вовсе не видит ни документа, ни элементов таксономии, т.е. таксономия для него представляется в урезанном виде. Это удобно для создания скрытых форумов, новостей для ограниченного круга пользователей - те у кого нет прав не будут видеть даже ссылок на закрытый для них контент, а если и попытаются зайти по ссылочкам получать page not found или access denied. Это во много повторяет функциональность старого патча taxonomy_access от Moshe Weitzman, но патч давно уже не поддерживается и работал только с post-4.3 CVS.
Администрирование прав осуществляется при создании или правке элементов таксономии - на том же экране. Появляется дополнительное окошко со списком ролей, где можно указать роли, которым будет разрешен доступ к элементу. Получилось не слишком стандартно для Drupal, где настройки прав доступа сгруппированы на одном экранчике permissions, но в настройках таксономии это делать понятнее пользователю, да и listbox с выбором ролей использовать быстрей, чем нажимать галочки в огромной общей таблице полномочий.
Полностью в виде модуля term_access реализовать не получилось, как и в groups и taxonomy_access требуется патчить другие модули Drupal (однако term_access не требует патчей ядра, только модулей). Патчи для почти всех стандартных модулей имеются, также патчи будут сделаны для некоторых модулей из contribs. В базу при установке добавляется две таблички для хранения привязок ролей к элементам таксономии и словарям, другие таблицы базы не модифицируются. Модуль имеет документацию на английском и русском языках, перевод интерфейсных сообщений на русский однако пока не сделан (там впрочем сообщений этих кот наплакал, т.что не критично).
- axel's blog
- Для комментирования войдите или зарегистрируйтесь
не получается установить term_access
скопировала term_access в папку с модулями, но в списке модулей сайта он не появился... может быть, нужно сделать что-то ещё?
Спасибо!
- Для комментирования войдите или зарегистрируйтесь
Вот очень похожий модуль Taxonomy simple access - закрывает доступ к термину словаря (к нодам). Или вот этот Taxonomy term lock - делает термины на странице создания ноды в словаре не активными.
- Для комментирования войдите или зарегистрируйтесь



Комментарии