Hawk128 Опубликовано 30 декабря, 2010 · Жалоба Перерыл и-нет, нигде нет конкретного решения. Где-то предлагают исходники радиуса править, где-то через доп. скрипт и т.д. Пришлось заняться вопросом самому, оказалось все проще некуда, но инфы мало, поэтому выклыдваю тут решение: Поднял все на FreeRadius 2. Для выдачи ответа на аккаунтинг запрос, достаточно всего лишь в конфиге добавить пару для ответа. Там же можно и проверку условий, да еще и на sql запрос. Вот примерно вот так: В раздел accounting { if("%{sql_traf:SELECT balans FROM `users` WHERE namev='%{User-Name}'}" < 0){ sql_traf update reply { mpd-drop-user = 1 } } if("%{sql_traf:SELECT mpddropuser FROM `users` WHERE namev='%{User-Name}'}" == 1){ sql_traf update reply { mpd-drop-user = 1 } %{sql_traf:update users set mpddropuser=0 WHERE namev='%{User-Name}'} } Первый запрос проверяет баланс, при отрицательном шлет ответ mpd на разрыв сессии, второй проверяет флаг в базе на разрыв сессии, есть есть, разрывает и меняет этот флаг. sql_traf - описание коннекта к базе билиннга с другими правами, нежели радиус. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
weldpua2008 Опубликовано 1 января, 2011 (изменено) · Жалоба Вот как Я делал))) ЗЫ: Вообще скидывать не правильно - лучше редиректить на страницу где-бы говорилось, что счёт заблокирован))) Кстати очень легко делается Изменено 1 января, 2011 пользователем weldpua2008 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Hawk128 Опубликовано 1 января, 2011 · Жалоба Мне кажется мой вариант попроще... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 1 января, 2011 · Жалоба Я один считаю, что проще всего - PoD? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
weldpua2008 Опубликовано 1 января, 2011 · Жалоба Мне кажется мой вариант попроще...Зайдите в Тех поддержку, там "их" любят за 691 - из-за не возможности авторизоваться)))Я один считаю, что проще всего - PoD? http://forum.nag.ru/forum/index.php?s=&...st&p=526977CoA не работает, ну вернее не так как хотелось бы))) PoD+CoA надо "внедрять", не всем подойдёт))) ЗЫ: И зачем откидывать пользователей? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Hawk128 Опубликовано 1 января, 2011 · Жалоба Использую на конец денег (по любым причинам, если в минус попал) и на изменение тарифа, легкче переконнектить пользователя... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ru34 Опубликовано 2 февраля, 2012 · Жалоба Вот примерно вот так: ... Странно, но перерыв пол-интернета, нашел единственную вменяемую тему - вот эту вот. Спасибо большое за информацию. Правда, сразу у меня это не заработало. Радиус не понимает дробных чисел, и когда сделал, как в приведенном примере, он правильно распознает ответ от sql сервера, например -1, но при сравнении -1 < 0 почему-то выдает FALSE и пользователя не сбрасывает. В общем, написал вьюшку для postgresql и конфигурацию упростил еще сильнее, после этого заработало. Вот какой конфиг у меня был: accounting { detail sql } а вот какой стал: accounting { detail sql if("%{sql:select drop from radius_drop where username='%{User-Name}'}"){ update reply { mpd-drop-user = 1 } } } Вьюшка radius_drop выдает 1, если пользователь заблокирован, или у него отрицательный баланс, и 0 во всех остальных случаях. create or replace view radius_drop as select username,case when blocked='t' or (purse_ue+credit) < 0 then 1 else 0 end as drop from contracts; Имя возвращаемого поля значения не имеет, радиус смотрит только на значение. При отладке радиус надо запускать командой radiusd -X, в выводе будет все необходимое. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...