+  HandyCache форум
|-+  Главная категория» Общие вопросы» Как блокировать разные сайты для разных пользователей?
Имя пользователя:
Пароль:
Страниц: [1] 2 3 4  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Как блокировать разные сайты для разных пользователей?  (Прочитано 60016 раз)
0 Пользователей и 1 Гость смотрят эту тему.
doctor_ORZ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 25


« : 28 ноября 2009, 19:48:26 »

Дано: школа. В школе локалка. Несколько десятков ПК. За любым из них может сесть как учитель, так и ученик (значит имя ПК не меняется, если конечно вместе со сменой пользователя не менять имя при помощи спец.утилит)
Нужно, что бы прокси менял свою политику в зависимости от юзера. Активна учетка "школьник" - работает белый список. Заходит "учитель" (либо учетные записи учителей - порядка 60-80 логинов) - работает черный список. Заходит "админ" - работает просто прокси.
Это можно реализовать? Насколько знаю - прокси реагирует на имя ПК, но не на учетку.
Поднимать несколько копий прокси? - не выход.
Как решить проблему?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #1 : 29 ноября 2009, 12:57:53 »

Попробуй сделать с помощью расширения.
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #2 : 29 ноября 2009, 14:27:00 »

Что бы это сделать - нужно знать. Но изучить всё это дело времени не хватает. Максимум, что смогу - по образцу и подобию подогнать под свои нужды. Но нужен образец. Может кто-то уже делал нечто похожее? Вы уж извините - именно не могу изучать, а не "не хочу" Грустный
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #3 : 08 декабря 2009, 22:11:28 »

Нужно, что бы прокси менял свою политику в зависимости от юзера. Активна учетка "школьник" - работает белый список. Заходит "учитель" (либо учетные записи учителей - порядка 60-80 логинов) - работает черный список. Заходит "админ" - работает просто прокси.

Не понятно, почему для учителей работает Черный список, а для учеников - Белый, а не наоборот.
И что значит: "работает просто прокси"? Все списки отключены? Даже Запись в кэш и Преобразование URL?

Пример расширения приведу такой:

Код:
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'admin' then
  hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
  hc.monitor_string = hc.monitor_string..'Б.БЧ '
 end

 if hc.user_name == 'uchitel' then
  hc.white_mask = 'Ч'   -- Отключает Черный список
  hc.monitor_string = hc.monitor_string..'Б.Ч '
 end

end
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #4 : 09 декабря 2009, 08:11:53 »

Для учителей "Ч", что бы не лазили на одноклассники-вконтакте-миртесен в рабочее время Улыбка - а с порно и рекламой они и сами разберутся.
У учеников "Б" - что бы лазили только туда, куда минобр разрешил.
Для админа - "Ч" и "Б", указанные выше вырублены, работают только дефолтные списки и правила (я действительно немного неверно сначала сформулировал запрос). Но, тогда, видимо и скрипт нужно поправить? Если не трудно, пожалуйста.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #5 : 09 декабря 2009, 12:15:40 »

Для учителей "Ч", что бы не лазили на одноклассники-вконтакте-миртесен в рабочее время Улыбка - а с порно и рекламой они и сами разберутся.
У учеников "Б" - что бы лазили только туда, куда минобр разрешил.

Получается, что у учителей и учеников два совершенно разных Черных списка (ЧС): у учеников он будет состоять из одного правила "запрещать все", а у учителей - из "одноклассники-вконтакте-миртесен". Но HC может одновременно работать только с одним ЧС.

В данном случае лучше не трогать дефолтные списки HC. Пусть ЧС режет рекламу для всех, а запрещать/разрешать загрузку сайтов по пользователям лучше на уровне расширения:

Код:
--[[ <HCExtension>
@name          Блокировать сайты по пользователям
@author        DenZzz
@event         Init/Init
@event         RequestHeaderReceived/Block
</HCExtension> ]]

function Init()
-- Белый список для учеников (запрещено все, кроме указанного)
hc_static.Whitelist_for_SchoolChildren = [[только_образовательные_сайты]]
-- Черный список для учителей (разрешено все, кроме указанного)
hc_static.Blacklist_for_Teachers = [[odnoklassniki|vkontakte|mirtesen]]
end

function Block()
if hc.user_name == 'uchitel' and re.find(hc.url, hc_static.Blacklist_for_Teachers) then
hc.action = 'stop'   --  запретить загрузку
hc.monitor_string = hc.monitor_string..'Block Teachers '
elseif hc.user_name == 'uchenik' and not re.find(hc.url, hc_static.Whitelist_for_SchoolChildren) then
hc.action = 'stop'   --  запретить загрузку
hc.monitor_string = hc.monitor_string..'Block SchoolChildren '
end
end
Сообщить модератору   Записан
doctor_ORZ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #6 : 09 декабря 2009, 17:11:02 »

опять всё немного не так:
У учеников - белый список и только. Порядка 3000 сайтов (сам список у меня уже набит) - остальное - бан.
У учителей - можно всё, что не запрещено (т.е. работает черный список).
Админу (директору, ещё 2 человекам) можно всё.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #7 : 09 декабря 2009, 21:55:57 »

У учеников - белый список и только. Порядка 3000 сайтов (сам список у меня уже набит) - остальное - бан.

"Белый список и только" не может работать без Черного, который будет блокировать все остальное, но это невозможно, потому что он настроен под учителей...

Попробуй тогда так:

Код:
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()
if hc.user_name == 'uchenik' then
hc.action = 'stop-'    -- Мягкий запрет загрузки всего, кроме разрешенного в Белом списке
elseif hc.user_name == 'uchitel' then
hc.white_mask = 'Б'    -- Отключает Белый список
elseif hc.user_name == 'admin' then
hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
end
end
Сообщить модератору   Записан
ixen
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #8 : 10 февраля 2010, 14:19:22 »

Всем привет! Подскажите пожалуста, у меня в сети 3 компьютера ходят в инет, но появилась необходимость добавить еще один компютер с доступом в интернет, но с разрешением только на конкретные сайты. Можно ли это реализовать и как с помощью HC ?

З.ы. HC пользуюсь несколько месяцев. Автору огромное спасибо! Отлично!
Сообщить модератору   Записан
Kuzmische
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #9 : 23 марта 2010, 10:18:24 »

Сделал по вашему рецепту:

--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'ASU1' then
  hc.white_mask = 'BWDR'
  hc.monitor_string = hc.monitor_string..'Без BWDR'
 end

end

В мониторе в колонке "ПРАВИЛА" 'Без BWDR' - отображается, т.е. расширение сработало, но списки продолжают работать...и Ч и Н.
Подскажите - где ошибка?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #10 : 23 марта 2010, 13:22:39 »

В мониторе в колонке "ПРАВИЛА" 'Без BWDR' - отображается, т.е. расширение сработало, но списки продолжают работать...и Ч и Н.
Подскажите - где ошибка?

У меня этот скрипт работает правильно. Какая версия HC используется?
Сообщить модератору   Записан
Kuzmische
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #11 : 24 марта 2010, 00:58:42 »

У меня этот скрипт работает правильно. Какая версия HC используется?


Упс, может действительно здесь собака порылась! У меня 180 билд, не обновлялся...
Сообщить модератору   Записан
СоколоВ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #12 : 31 марта 2010, 09:42:12 »

Как сделать так, чтобы черный список работал только для пользователей User1 и User2 например, но не работал для пользователя User3?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #13 : 31 марта 2010, 14:05:29 »

Это можно сделать через расширение, посмотри выше в этой теме.
« Последнее редактирование: 31 марта 2010, 15:43:49 от DenZzz » Сообщить модератору   Записан
СоколоВ
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #14 : 10 апреля 2010, 11:39:29 »

Проблема в том, что у меня тоже 180 билд как и топикстартера =/
Сообщить модератору   Записан
Ubiquitous_Nothing
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 8


« Ответ #15 : 26 апреля 2010, 17:13:32 »

Проблема в том, что у меня тоже 180 билд как и топикстартера =/

По-моему, эта проблема легкоразрешима. У меня обновление билда прошло быстро и безболезненно, и теперь с функционалом все в порядке.
Сообщить модератору   Записан
Ol_3
Пользователь
**

Репутация: +0/-0
Offline Offline

Сообщений: 69


« Ответ #16 : 17 мая 2010, 12:56:08 »

прочел, но чтото не понял.
мне нужно 1 пользователю отключить черный список.
тут вроеде есть решение, но я не вьехал.
кому не лень напишите, что сделать (какую сточку куда написать)!
Плиииз
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #17 : 17 мая 2010, 13:27:31 »

Это расширение отключает Черный список для пользователя user1.
Код:
--[[ <HCExtension>
@name         BlackListDisabler
@author        mai62
@version       0.01
@description  Отключает Черный список для заданных пользователей
@event         RequestHeaderReceived/request
</HCExtension> ]]

function request()
 if hc.user_name == 'user1' then
  hc.white_mask="Ч"
 end
end
Сообщить модератору   Записан
Ol_3
Пользователь
**

Репутация: +0/-0
Offline Offline

Сообщений: 69


« Ответ #18 : 17 мая 2010, 14:31:06 »

я сделал так
--[[ <HCExtension>
@name          Маски Белого списка для пользователей
@event         RequestHeaderReceived/allow
</HCExtension> ]]


function allow()

 if hc.user_name == 'admin' then
  hc.white_mask = 'БЧ'   -- Отключает Белый и Черный список
  hc.monitor_string = hc.monitor_string..'Б.БЧ '
 end

end

чем это хуже -лучше предложенного Вами?
вроде работает.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #19 : 17 мая 2010, 14:58:54 »

Я думаю, что твое расширение лучше тем, что ты его написал сам. А перед этим, наверное, почитал документацию. Теперь, если понадобится еще что-то, ты сможешь попробовать это организовать.
Сообщить модератору   Записан
Страниц: [1] 2 3 4  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: