Вывести материал только определённой подсети ip адресов

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

Аватар пользователя Дмитрий Н Дмитрий Н 22 мая 2012 в 22:43

Приветствую.

Собственно вопрос - есть-ли в друпале возможность отображения ноды только для определённых подсетей? Дело в том, что я разарабатываю сайт на drupal 7 для локальной сети, которая простирается на несколько населённых пунктов с разными серыми подсетями. Необходимо оргнизовать вывод материалов (в первую очередь новостей) для определённых населённых пунктов, чтобы новость для одного посёлка не была видна остальным.
Специального модуля не нашлось, в яндексе и гугле тишина по такому специфичному вопросу.
Буду рад любым комментариям!

С уважением, Дмитрий.

Комментарии

Аватар пользователя symbiosss symbiosss 22 мая 2012 в 23:14

приходит мысль сделать эти секретные статьи с синонимом например example.com/secret/название_статьи и через htaccess разрешить доступ к example.com/secret/* только определенным подсетям

Аватар пользователя Дмитрий Н Дмитрий Н 22 мая 2012 в 23:42

Да, очень правильно выразились - "секретные"! Smile Но так хочет руководство, к сожалению.
По сути, если говорить о ленте новостей, то я себе это представлял, как views page с условием, по которому проверяется вхождение ip адреса в определённую подсеть и соотв. выводится или не выводится каждая новость в ленте.
Но можно-ли сделать такое условие? Имеет-ли такую возможность модуль views, ещё лучше написать самому это условие на php...
Тем более предполагается новый тип материала "новость", в котором будет поле "Доступность населённым пунктам" и элемент управления выпадающий список с опциями "отображать всем", "населённый пункт 1", "населённый пункт 2", ...

Аватар пользователя Дмитрий Н Дмитрий Н 22 мая 2012 в 23:45

"тип материала с ограниченным доступом"
можно подробнее? т.к. в этом вся суть. Я имею ввиду то, что разве можно непосредственно в настройках материала сделать ограничение на отображение по определённым ip? Ни разу такого не видел.

Аватар пользователя symbiosss symbiosss 22 мая 2012 в 23:55

нативного функционала нет. Есть модуль accessctypebyip. Но он только под шестой друпал. Посмотрите, может проще его портировать

Аватар пользователя Дмитрий Н Дмитрий Н 23 мая 2012 в 0:08

Посмотрел исходники модуля. Получается не совсем гибко, т.к. на каждый населённый пункт нужно создать свой тип новости!, свой тип страницы тарифов, это сколькож надо типов материалов понасоздавать ))? Но, как крайний вариант, можно принять к сведению.

Аватар пользователя symbiosss symbiosss 23 мая 2012 в 8:38

может тогда вообще с помощью модуля domain разделить для каждого населенного пункта на поддомены. А htaccess будет регулировать доступ по подсетям. Легко и просто

Аватар пользователя zil.arman zil.arman 23 мая 2012 в 9:03

На Drupal.org есть несколько модулей, связанных с IP. Вот один из них: http://drupal.org/project/smart_ip
Описание выглядит впечатляюще.

В частности, у этого модуля есть интеграция с Правилами (Rules). Можно попробовать создать с ним правило, чтобы пользователям из разных регионов автоматом присваивались разные роли. Тогда разграничение доступов не будет проблемой.

Сам не пробовал, но мне кажется должно получиться.

Аватар пользователя Дмитрий Н Дмитрий Н 24 мая 2012 в 1:32

"symbiosss" wrote:
а если требуется реализовать без авторизации?

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