Question

Je discute du meilleur moyen de propager des autorisations assez complexes du serveur vers une application AJAX, et je ne suis pas sûr de la meilleure approche à adopter.

Pour résumer, je souhaite que mes autorisations soient définies de manière à pouvoir demander un ensemble d'autorisations en une seule fois et à ajuster l'interface utilisateur le cas échéant (les modifications apportées à l'interface utilisateur peuvent être aussi basses que la désactivation de certains éléments du menu contextuel). Bien sûr, je dois toujours appliquer le côté serveur d'autorisations.

Je me demandais donc si quelqu'un avait des suggestions sur la meilleure façon de

  1. gérer les autorisations et les utiliser dans le code serveur
  2. avoir facilement accès aux autorisations en javascript
  3. pas besoin de faire une demande aller-retour au serveur pour chaque permission individuelle

Pensées?

Était-ce utile?

La solution

Si vous disposez d'un ensemble clair d'autorisations, comme un "niveau utilisateur". ou "type d'utilisateur", vous pouvez simplement transmettre la valeur dans un champ masqué et accéder à la valeur via le DOM. Vous pouvez toujours le faire si vos autorisations sont plus granulaires, mais vous avez soit beaucoup de champs cachés, soit vous devez coder les informations au format XML, JSON ou dans un autre format.

Vous pouvez les définir en tant qu'indicateurs de bits afin de pouvoir OU une seule valeur numérique avec un masque pour voir si l'utilisateur avait l'autorisation de réaliser une activité spécifique. Ce serait très flexible et tant que vous n’auriez pas plus de 32 "droits" spécifiques, ce qui permettrait toute permutation de ces droits dans un très petit paquet (fondamentalement un unsigned int).

Par exemple:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

Ensuite, un utilisateur disposant de l'autorisation 0x000007 pourrait modifier, créer et supprimer, mais rien d'autre.

Dans les deux cas, je pense que vous êtes sur la bonne voie: effectuez la requête une fois par page, stockez les autorisations dans une structure de données JavaScript globale, puis recommencez. AJAX est bien, mais vous ne voulez pas interroger le serveur pour chaque autorisation spécifique sur votre page. Vous devez le faire une fois lors du chargement de la page, configurer la présentation de votre page et enregistrer la valeur dans une variable globale, puis référencer la ou les autorisations localement pour les fonctions d'événement.

Autres conseils

Si vous transmettez la structure des autorisations au client en tant qu'objet JSON (ou XML, si vous préférez), vous pouvez manipuler cet objet avec le code côté client et le renvoyer au serveur, qui peut faire ce qu'il veut. doit valider les données et les conserver.

Je ne le vois pas nécessairement comme le plus "correct" Mais serait-il possible de conserver toutes les autorisations du côté serveur et de ne servir que l’interface utilisateur mise à jour plutôt qu’un système d’autorisations JSON?

Vous devez prendre une décision en fonction de l'intensité et de l'intensité de votre application, mais une décision qui en vaut vraiment la peine

Encodez-les au format JSON .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top