Проблема: в базе есть несколько правил, которые там быть не должны.
Существующие варианты - можно обновить только reason. А мне необходимо обновить rule.
Например:
Тут лишний пробел вначале имени хоста:
<record id="983327">
<rule> xilisoft.com</rule>
Это вообще не url и не hostname:
<record id="981707">
<rule>1</rule>
Попытка добавить правило защитана. Но само правило - не url и не hostname.
<record id="983285">
<rule>123</rule>
<add>
<reason>123.ru</reason>
</add>
Варианты выхода из положения:
Вариант 0) проигнорировать (как бы не вошло в привычку...)
Вариант 1) попросить админа
Вариант 2) изменить самостоятельно
Предложение: добавить команды
updateRule и
removeRule в API/json (по возможности - добавить отдельную форму в личном кабинете).
* Команда
removeRule(
id) - удаление правила по его идентификатору.
Разрешено удалять только свои правила.
Ограничение: каждому пользователю 15 удалённых правил за последние 90 дней (позволит устранить последствия невнимательности, но не даст затроллить систему).
* Команда
updateRule(
id,rule,reason,answer) - обновить существующее правило по его идентификатору.
Разрешено обновлять только свои правила.
Обязательные аргументы: id.
Необязательные аргументы: rule, reason, answer.
Дополнительные условия: минимум один необязательный аргумент в запросе.
Ограничение: в отношении тех правил, которые затрагивают атрибут rule - 15 правил за последние 60 дней (обновление атрибутов answer/reason - без ограничений, или как там устроено сейчас).
* Форма изменения существующего правила в личном кабинете:
Указываем id правила. Нажимаем "Извлечь данные". Получаем форму с данными по записи с указанным id, в которой можем менять все поля. По нажатию "отправить" - новые правила отправляются на сервер.
Ограничения: разрешено загружать форму с данными по записи только 45 раз за календарный месяц (отчёт с 1-го по последнее число месяца).
* Дополнительные ограничения при добавлении/обновлении правила: проверять rule в листах типа "urls" на соответствие требованиям к hostname:
- допустимые символы: только буквы (в том силе русские, мультиязычные), цифры, "." (точка), "_" (нижнее подчёркивание) и "-" (минус);
- минимум 1 точка в rule;
- минимум 2 символа в имени домена;
- прочие ограничения (дополнительно - в
rfc1035, 2.3.1. Предпочитаемый синтаксис имени)