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

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

Сообщений: 1


« Ответ #60 : 06 августа 2015, 07:42:58 »

Ситуация такая:
черный и белый список настроен для всех пользователей. нужно сделать так, чтобы секретарь со своего рабочего места мог открыть только один сайт. Поскольку я вообще никак с программой HC и вообще программированием, ОЧЕНЬ ПРОШУ поэтапно мне все разъяснить, буду очень благодарна.
Пока я сделала только так, набрала в блокноте и экспортировала в расширения:

Не получилось вставить код, он в приложении

* LUA.txt (0.55 Кб - загружено 39 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #61 : 07 августа 2015, 12:19:29 »

Вот примерный текст расширения, решающего Вашу задачу. Этот текст сохраните в файл с расширением lua, добавьте этот файл в список расширений. Поставьте галку в строке расширения и галку, разрешающую работу всех расширений.
В расширении вместо buh впишите имя Вашего пользователя. Это расширение будет пускать пользователя только на сайт buh.ru. Впишите в расширение нужный сайт. Часто элементы сайта хранятся на нескольких серверах, возможно надо будет разрешить доступ сразу к нескольким серверам. Тогда впишите их по шаблону
[[server1\.ru|server2\.ru|server3\.ru]]
Код:
--[[ <HCExtension>
@name          Разрешить один сайт бухгалтеру
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
  if hc.user_name=='buh' then
     if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
  end
end
Сообщить модератору   Записан
Zelen
Пользователь
**

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

Сообщений: 82


pew pew


« Ответ #62 : 25 февраля 2016, 13:30:20 »

Вот примерный текст расширения, решающего Вашу задачу. Этот текст сохраните в файл с расширением lua, добавьте этот файл в список расширений. Поставьте галку в строке расширения и галку, разрешающую работу всех расширений.
В расширении вместо buh впишите имя Вашего пользователя. Это расширение будет пускать пользователя только на сайт buh.ru. Впишите в расширение нужный сайт. Часто элементы сайта хранятся на нескольких серверах, возможно надо будет разрешить доступ сразу к нескольким серверам. Тогда впишите их по шаблону
[[server1\.ru|server2\.ru|server3\.ru]]
Код:
--[[ <HCExtension>
@name          Разрешить один сайт бухгалтеру
@event         RequestHeaderReceived/allow
</HCExtension> ]]

function allow()
  if hc.user_name=='buh' then
     if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
  end
end

Здравствуйте, а как сделать в обратную сторону из этого рассширения? чтобы запрещал определенные сайты и онлайн аудио/видео просмотр?
Сообщить модератору   Записан

всё будет хорошо =)
YuS
Ветеран
*****

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

Сообщений: 701


crazy


« Ответ #63 : 26 февраля 2016, 15:07:34 »

Здравствуйте, а как сделать в обратную сторону из этого рассширения?
Обратите внимание на вот эту часть:
Код:
...
if not re.find(hc.url, [[buh\.ru]]) then
       hc.action = 'stop'
     end
...
Это условный блок,который выполняет проверки по url через регэксп.
Т.е. можно сделать так:

Код:
...
if re.find(hc.url, [[(buh\.ru|site\.ru|определенные.сайты\.com)]]) then
       hc.action = 'stop'
     end
...
Сообщить модератору   Записан
Zelen
Пользователь
**

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

Сообщений: 82


pew pew


« Ответ #64 : 27 февраля 2016, 18:19:24 »

Обратите внимание на вот эту часть:

Спасибо, получилось.
Помогите пожалуйста добавить эти строки в код выше, чтобы я мог определенным пользователям и сайты и онлайн видео/аудио просмотр блокировать.

Код:
--[[ <HCExtension>
@name          eA_OnlyFromCache_media_by_type (OFC-media)
@author        mai62
@description   Загружать медиа-файлы только из кэша
@exception     \.swf($|\?)
@event         AnswerHeaderReceived/Answer
</HCExtension> ]]


function GetContentType(s)
  _,_,x = string.find(s, '[cC]ontent%-[tT]ype: *([^;\r\n]+)')
  if x~=nil then x = string.lower(x) end
  return x
end

function GetContentLength(s)
  _,_,x = string.find(s, '[cC]ontent%-[lL]ength: *(%d+)')
  if x==nil then return -1 else return tonumber(x) end
end


function Answer()

 -- Только для GET-запросов
  if hc.method == 'GET' then

  -- забираем тип файла из заголовка 'Content-Type'
  type = GetContentType(hc.answer_header)
  if type~=nil then
    local media= nil
    media = string.find(type,'video',1,true)
    if media==nil then media = string.find(type,'audio',1,true) end

    -- если в поле заголовка 'Content-Type' есть слово 'video' или 'audio'
    -- и файла нет в кэше
    if media~=nil and hc.cache_file_size<0 then
    -- то останавливаем загрузку
      hc.action = 'stop-'
      hc.monitor_string = hc.monitor_string..'OFC-media '
    end
  end
  end

end  -- Конец функции Answer
Сообщить модератору   Записан

всё будет хорошо =)
Страниц: 1 2 3 [4]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: