wiki:ParkServer-payment-acl

Контроль оплаты

Контроль доступа - механизм управления оплатой парковки, реализованный в виде редактируемого последовательного списка правил. Правила состоят из установленного набора критериев, на основании которых разрешается (или запрещается) доступ к оплате и предложения по оплате/покупке тарифа.

Список критериев:

  • Идентификатор, предъявляемый клиентом
  • Справочник идентификаторов. В случае, если этот критерий задан, то проверяется принадлежность предъявленного пользователем идентификатора данному справочнику.
  • Терминал оплаты - терминал, с которым работает клиент
  • АРМ, касса, через которую оплачивает клиент
  • Тариф, который пытается оплатить клиент
  • Действителен до - время, до которого действует правило

В момент попытки оплаты через паркомат или АРМ происходит поочередное(сверху-вниз) сравнивание с критериями каждого правила в списке.
Если сложившиеся на момент проезда условия удовлетворяют КАЖДОМУ критерию* очередного правила, то выносится вердикт на разрешение(или запрет) оплаты по данному тарифу. Нижележащие правила игнорируются.
Если ни одного подходящего правила в списке не оказалось, то вердикт выносится на основании "политики по умолчанию".

*Отсутствие критерия в правиле(пустое поле) указывает на любое его возможное значение, то есть удовлетворяет любым сложившимся условиям оплаты.

Настройка политики по-умолчанию

Настройка политики по умолчанию производится в конфигурационном файле программы

Пример части конфигурационного файла

...
<acl payment_acl_policy="deny"/>     (по умолчанию оплата запрещена)
...

...
<acl payment_acl_policy="accept"/>   (по умолчанию оплата разрешена)
...

Редактирование данных

Редактирование текущего списка правил происходит в меню Правила оплаты управляющего ПО.
Доступны операции удаления, редактирования и смены очередности в списке для каждого правила.
По нажатию кнопки "Добавить запись" возможно добавление нового правила в конец списка.
В форме добавления правила устанавливаются его критерии и вердикт.
Вердикт устанавливается в обязательном порядке, критерии правила могут быть проигнорированы.
Отсутствие критерия в правиле указывает на любое его возможное значение, то есть удовлетворяет любым сложившимся условиям оплаты.

Импорт данных

По нажатию кнопки "Импорт" возможен импорт новых правил доступа из XML файла. В форме импорта устанавливается "Тип загрузки" и выбирается сам файл. Тип загрузки может принимать значения:

  • Перезапись (Текущий список правил доступа удаляется, на его место записываются правила из файла)
  • Добавление в начало (Происходит добавление правил доступа из файла в начало текущего списка правил)
  • Добавление в конец (Происходит добавление правил доступа из файла в конец текущего списка правил)

Пример файла импорта:

 
<xml version="1.0" encoding="utf-8"?>                                                                                                                                                                                                                        
    <root>                                                                                                                                                                                                                                                    
        <item pass_id="65749734" terminal_id="15" end_time="1430784000" verdict="deny"/>                                                                                                                                                                             
        <item pass_id="78878885" workstation_id="12" verdict="accept"/>                                                                                                                                                                             
        <item end_time="1430789000" verdict="deny"/>
    </root>           
 

Параметры:

  • /root/item/@pass_id - строка - идентификатор пропуска
  • /root/item/@terminal_id - число - идентификатор паркомата
  • /root/item/@workstation_id - число - идентификатор АРМ
  • /root/item/@wtariff_id - число - идентификатор тарифа
  • /root/item/@end_time - число - время, до которого действует правило
  • /root/item/@verdict - символ t / accept (разрешить) или f / deny (запретить) - вердикт

Если параметр не указан, то в импортированном правиле доступа поле, соответствующее этому параметру, будет пустым (отсутствие критерия).

Last modified 9 years ago Last modified on May 26, 2015, 7:37:50 PM