Ограничение количества дней заморозки

Начиная с версии 0.9.0 добавлена совершенно кабалистическая возможность ограничивать количество дней заморозки доступных для пользователя с последующим кулдауном в теченни определенного времени, в течении которого пользователь непременно должен быть активным, то есть - работать.

Описывается это все следующими опциями конфига alter.ini вот в таком виде(для примера):

FREEZE_DAYS_CHARGE_ENABLED=1
FREEZE_DAYS_INITIAL_AMOUNT=365
FREEZE_DAYS_WORK_TO_RESTORE=120

Исходя из вышеописанного значения опций: изначально доступное пользователю количество дней заморозки - 365 (может быть установлено индивидуально для каждого пользователя в профиле), а количество дней кулдауна - 120 (так же может быть установлено индивидуально). Это значит, что в течении неограниченного времени пользователь может замораживать/размораживать свою услугу, но счетчик, тем не менее - тикает каждый день, пока активна заморозка услуги - уменьшается количество доступных дней заморозки. Когда эти самые доступные дни будут исчерпаны - заморозка у пользователя будет отключена и включить ее будет невозможно до тех пор, пока пользователь не «отработает» 120 дней. При чем он именно должен быть активным в течении указанного количества дней - просто внести денег >= количеству дней кулдауна - не выйдет. Соответственно, если пользователь не активен - дни кулдауна не считаются. Как только пользователь честно отработал 120 дней - ему возвращается возможность замораживать услугу и 365 доступных для заморозки дней.
Вот как-то так.

Вся обработка производится ежедневным вызовом соответствующего действия из Remote API - freezedayscharge. Желательно до начисления абонплаты.

Например вот так:

45 23 * * * /bin/ubapi "freezedayscharge" 


Так же не забываем добавить аналогичные опции в userstats.ini

FREEZE_DAYS_CHARGE_ENABLED=1
FREEZE_DAYS_INITIAL_AMOUNT=365
FREEZE_DAYS_WORK_TO_RESTORE=120

чтобы хитрые пользователи не могли устанавливать себе заморозку из личного кабинета в обход системных настроек.

Как вы уже, наверное, поняли в случае, если какому-то конкретному пользователю нужно отключить ограничение количества дней приостановки можно легко «обойти» систему и поставить овер9000 несметное количество дней приостановки, либо попросту поставить значение дней кулдауна равным 0.


frozenchargedays.txt · Последние изменения: 2018/05/02 16:49 — bobr
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki