И еще раз про права доступа (поиск модуля)

Главные вкладки

Аватар пользователя Alex_R Alex_R 28 февраля 2011 в 10:51

Уже собрался сам писать, но на всякий случай решил спросить (поскольку поиском ничего не нашлось). Требуется модуль, который бы создавал альтернативную друпаловской систему ограничения доступа к нодам, Который не использовал бы в своей работе таблицу node_access (которая является таблицей разрешений), а использовал бы свою, которая являлась бы таблицей запрещений. Т.е. если в таблице про ноду ничего не написано, то доступ есть всем, а если написано, то доступ для тех, для кого он прописан ограничен (соответсвенно просмотр/редактирование/удаление).
Для чего это надо я объяснял тут http://www.drupal.ru/node/58001 и тут http://www.drupal.ru/node/57889
Кстати, по логике, если все сделать правильно, данный модуль не должен конфликтовать со стандартной системой доступа, а их действия должны накладываться друг на друга.
Думаю, что в необходимости подобного функционала убеждался каждый, кто пытался при мультисайтинге сделать разграничение доступа к контенту по правам доступа (ноды общие, а таблица доступа для каждого сайта своя - со стандартной системой не работает). Уверен, что кто то нечто подобное делал, вопрос есть ли это оформленное в виде отдельного модуля?
Заранее спасибо!

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 28 февраля 2011 в 10:59

из всего что есть с доступами в drupal - лучшее - это opengroups Smile
напишите уже свое. и да. не надо hook_access на view перекрывать

лучше изучите как код db_rewrite_sql() работает и свой хук для прицепа таблицы доступа напишите Smile
обычно в нормальных модулях все запросы обрабатываются сверху через db_rewrite_sql - чтобы вклинить в SQL запрос что-то касательно разрешений.

Аватар пользователя oksoft oksoft 28 февраля 2011 в 20:30

посмотрите функционал модуля Private. В настройках можно указать доступ по умолчанию для разных типов материалов. при создании/редактировании материала разрешение/запрещение к просмотру можно изменить выставлением галки.