Разрешить подключать услугу только один раз

Матеріал з NoDeny
Версія від 18:13, 11 січня 2021, створена Sv (обговорення | внесок) (Новая страница: «Задача: имеется акционная услуга «интернет за 50% стоимости» или, например, «Один месяц бе...»)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Задача: имеется акционная услуга «интернет за 50% стоимости» или, например, «Один месяц бесплатно». Необходимо разрешить абоненту подключить даннную услугу только один раз. Даже если после нее будет подключена иная или будет несколько смен на иные, больше никогда не будет разрешено подключить данную услугу.

Первое, что мы должны сделать, это в настройках акционной услуги поставить галку «Запрет продления».

Далее в зависимости от типа услуги у нее может быть или не быть параметр «теги»

Есть параметр «теги»

  • в параметре «теги» вписываем: only_once
  • в параметре «условия»:
NOT EXISTS (SELECT 1 FROM pays WHERE mid=u.id AND category=100 AND tags LIKE='%,only_once,%')
  • в /usr/local/nodeny/sat.cfg установить (заменить):
$service_condition_enabled = 1;
  • перезапустить ядро NoDeny или только модуль ядра services, если возможно

Нет параметра «теги»

  • в параметре «условия»:
NOT EXISTS (SELECT 1 FROM pays WHERE mid=u.id AND category=100 AND comment='Один месяц бесплатно')
  • Здесь то, что написано в одинарныйх кавычках должно один в один соответствовать комментарию в услуги. Если хотя бы один символ не будет соответсвовать, например, в конце комментария будет перевод строки, результат не будет положительным
  • в /usr/local/nodeny/sat.cfg установить (заменить):
$service_condition_enabled = 1;
  • перезапустить ядро NoDeny или только модуль ядра services, если возможно

Как это работает