Я пытаюсь сохранить правила для веб-запросов в объекте JSON, и у меня возникают проблемы с представлением хорошей структуры.Вот несколько примеров моих правил:
Возможные условия
the user must be logged in
the user must belong to an account of type [____]
the user must belong to an account named [___]
the user must have a username [___]
the user must have the account role [___]
the current time must be between [___] and [___]
the variable [___] must be set to [___]
Возможные успешные действия
allow access to the requested view
redirect to download a specific file
Возможные действия при сбое
redirect to a certain view to display reasons why access was denied
redirect to a purchase page
redirect to a login page with a notice explaining why access was denied
Мне нужно хранить несколько правил в одном объекте.Мне также нужно иметь возможность хранить логические отношения, как это:
(rule1 && rule2) || rule3
Структура объекта обычно мне легко дается, но я изо всех сил пытаюсь это собрать.Вот пример требования, которое должен хранить объект JSON:
Пользователь может получить доступ к панели управления, если он вошел в систему и принадлежит учетной записи с именем «Владельцы».Если у пользователя есть учетная запись «Сотрудник», то он может войти в систему только в понедельник-пятницу, а не в выходные.Если у пользователя есть имя «root», он может войти независимо от любого другого правила.Если ни одно из правил не выполнено, перенаправьте пользователя на страницу, сообщающую ему, почему он не может попасть на панель управления.Например, «это выходные, и вы можете войти в систему только с понедельника по пятницу».