doctor_ORZ
Новичок
Репутация: +0/-0
Offline
Сообщений: 25
|
|
« : 28 ноября 2009, 19:48:26 » |
|
Дано: школа. В школе локалка. Несколько десятков ПК. За любым из них может сесть как учитель, так и ученик (значит имя ПК не меняется, если конечно вместе со сменой пользователя не менять имя при помощи спец.утилит) Нужно, что бы прокси менял свою политику в зависимости от юзера. Активна учетка "школьник" - работает белый список. Заходит "учитель" (либо учетные записи учителей - порядка 60-80 логинов) - работает черный список. Заходит "админ" - работает просто прокси. Это можно реализовать? Насколько знаю - прокси реагирует на имя ПК, но не на учетку. Поднимать несколько копий прокси? - не выход. Как решить проблему?
|
|
|
|
|
mai62
|
|
« Ответ #1 : 29 ноября 2009, 12:57:53 » |
|
Попробуй сделать с помощью расширения.
|
|
|
|
|
doctor_ORZ
Новичок
Репутация: +0/-0
Offline
Сообщений: 25
|
|
« Ответ #2 : 29 ноября 2009, 14:27:00 » |
|
Что бы это сделать - нужно знать. Но изучить всё это дело времени не хватает. Максимум, что смогу - по образцу и подобию подогнать под свои нужды. Но нужен образец. Может кто-то уже делал нечто похожее? Вы уж извините - именно не могу изучать, а не "не хочу"
|
|
|
|
|
DenZzz
|
|
« Ответ #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
Сообщений: 25
|
|
« Ответ #4 : 09 декабря 2009, 08:11:53 » |
|
Для учителей "Ч", что бы не лазили на одноклассники-вконтакте-миртесен в рабочее время - а с порно и рекламой они и сами разберутся. У учеников "Б" - что бы лазили только туда, куда минобр разрешил. Для админа - "Ч" и "Б", указанные выше вырублены, работают только дефолтные списки и правила (я действительно немного неверно сначала сформулировал запрос). Но, тогда, видимо и скрипт нужно поправить? Если не трудно, пожалуйста.
|
|
|
|
|
DenZzz
|
|
« Ответ #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
Сообщений: 25
|
|
« Ответ #6 : 09 декабря 2009, 17:11:02 » |
|
опять всё немного не так: У учеников - белый список и только. Порядка 3000 сайтов (сам список у меня уже набит) - остальное - бан. У учителей - можно всё, что не запрещено (т.е. работает черный список). Админу (директору, ещё 2 человекам) можно всё.
|
|
|
|
|
DenZzz
|
|
« Ответ #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
Сообщений: 1
|
|
« Ответ #8 : 10 февраля 2010, 14:19:22 » |
|
Всем привет! Подскажите пожалуста, у меня в сети 3 компьютера ходят в инет, но появилась необходимость добавить еще один компютер с доступом в интернет, но с разрешением только на конкретные сайты. Можно ли это реализовать и как с помощью HC ? З.ы. HC пользуюсь несколько месяцев. Автору огромное спасибо!
|
|
|
|
|
Kuzmische
Новичок
Репутация: +0/-0
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
|
|
« Ответ #10 : 23 марта 2010, 13:22:39 » |
|
В мониторе в колонке "ПРАВИЛА" 'Без BWDR' - отображается, т.е. расширение сработало, но списки продолжают работать...и Ч и Н. Подскажите - где ошибка?
У меня этот скрипт работает правильно. Какая версия HC используется?
|
|
|
|
|
Kuzmische
Новичок
Репутация: +0/-0
Offline
Сообщений: 4
|
|
« Ответ #11 : 24 марта 2010, 00:58:42 » |
|
У меня этот скрипт работает правильно. Какая версия HC используется?
Упс, может действительно здесь собака порылась! У меня 180 билд, не обновлялся...
|
|
|
|
|
СоколоВ
Новичок
Репутация: +0/-0
Offline
Сообщений: 8
|
|
« Ответ #12 : 31 марта 2010, 09:42:12 » |
|
Как сделать так, чтобы черный список работал только для пользователей User1 и User2 например, но не работал для пользователя User3?
|
|
|
|
|
mai62
|
|
« Ответ #13 : 31 марта 2010, 14:05:29 » |
|
Это можно сделать через расширение, посмотри выше в этой теме.
|
|
|
|
|
СоколоВ
Новичок
Репутация: +0/-0
Offline
Сообщений: 8
|
|
« Ответ #14 : 10 апреля 2010, 11:39:29 » |
|
Проблема в том, что у меня тоже 180 билд как и топикстартера =/
|
|
|
|
|
Ubiquitous_Nothing
Новичок
Репутация: +0/-0
Offline
Сообщений: 8
|
|
« Ответ #15 : 26 апреля 2010, 17:13:32 » |
|
Проблема в том, что у меня тоже 180 билд как и топикстартера =/
По-моему, эта проблема легкоразрешима. У меня обновление билда прошло быстро и безболезненно, и теперь с функционалом все в порядке.
|
|
|
|
|
Ol_3
Пользователь
Репутация: +0/-0
Offline
Сообщений: 69
|
|
« Ответ #16 : 17 мая 2010, 12:56:08 » |
|
прочел, но чтото не понял. мне нужно 1 пользователю отключить черный список. тут вроеде есть решение, но я не вьехал. кому не лень напишите, что сделать (какую сточку куда написать)! Плиииз
|
|
|
|
|
mai62
|
|
« Ответ #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
Сообщений: 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
|
|
« Ответ #19 : 17 мая 2010, 14:58:54 » |
|
Я думаю, что твое расширение лучше тем, что ты его написал сам. А перед этим, наверное, почитал документацию. Теперь, если понадобится еще что-то, ты сможешь попробовать это организовать.
|
|
|
|
|
|