Je tente de stocker des règles pour les requêtes Web dans un objet JSON et j'ai du mal à penser à une bonne structure. Voici quelques exemples de mes règles:Construction d'une structure JSON pour stocker des règles pour les requêtes Web
conditions
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 [___]
Actions possibles succès
allow access to the requested view
redirect to download a specific file
défaillance possibles Actions
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
J'ai besoin de stocker plusieurs règles dans un seul objet. Je dois aussi être en mesure de stocker des relations booléennes comme ceci:
(rule1 && rule2) || rule3
structure de l'objet est normalement facile pour moi, mais je me bats mettre ensemble. Voici un exemple d'une exigence que l'objet JSON devrait pouvoir stocker:
Un utilisateur peut accéder au panneau de contrôle s'il est connecté et appartient à un compte nommé «Propriétaires». Si l'utilisateur a le rôle de compte "Employé", il ne peut se connecter que du lundi au vendredi, pas le week-end. Si l'utilisateur a le nom "root", il peut se connecter indépendamment de toute autre règle. Si aucune règle ne réussit, redirigez l'utilisateur vers une page lui indiquant précisément pourquoi il est impossible d'accéder au panneau de configuration. Par exemple, "C'est le week-end et vous êtes seulement autorisé à vous connecter du lundi au vendredi."
Voulez-vous l'utiliser pour la validation côté client? Ou pour synchroniser la validation côté serveur et côté client? Ou juste comme un format de stockage pratique? Vous pouvez, par exemple, Jetez un coup d'œil à la façon dont les annotations de données asp.net et la validation côté client mvc2 fonctionnent. – VolkerK