MVC : Ajouter des permissions au controller avec express

Comment m'y prendre ? Ai-je le choix du package ?

a marqué ce sujet comme résolu.

Bonjour,

Je suis en train de mettre en place une nouvelle structure pour mes projets avec Node.js. Express à quelques lacunes dans certain domaine donc doit être complété avec d’autres packages, c’est donc pour ça que je crée mon propre package pour réunir plusieurs packages populaires et maintenus, actuellement je réfléchis à l’intégration de permission pour l’accès au contrôleur.

J’utilise notamment express comme middleware applicatif avec une structure en MVC divisée en package (ou Bundle dans le vocabulaire de Symfony) ainsi chaque partie indépendante pourra être utilisée dans un autre projet sans problème.

J’ai identifié quelques principes sur les permissions :

  • Les utilisateurs correspondent à un rôle, chaque rôle possède des autorisations.
  • Elles sont soit pour LIRE, soit pour ECRIRE.
  • Pour un contrôleur, il peut y avoir plusieurs vérifications afin de donner l’autorisation.

Ma première question comment intégrer les permissions ? C’est-à-dire :

Existe un package prêt à l’emploi ? Connaissez vous une façon particulière de faire avec express ?

Structurer le code

Je n’arrive pas à me décider :

  • Si j’intégre les permissions dans le même fichier du type :
userController.prototype.profilPerm = xxx()
userController.prototype.profil = yyy()

ou

  • Si je fais une classe hérité de permission que je mets dans un autre dossier par exemple
../bin/myPackage/perm/user.js
../bin/myPackage/userModule.js

Pour l’instant je suis en faveur de celle là, et lorsqu’il n’y a pas de fonction de permission on bloque par défaut.

Le format de la vérification

Dois je passer par du Javascript ou une syntaxe logique sous forme de JSON similaire à validate.js pour faire mes permissions ?

Bon vol,

A.

+0 -0

Tu veux faire quoi comme application finale, une API ou un CMS ?

Je souhaité faire framework qui regroupe les frameworks populaire avec des packages modulables, un peu dans l’idée des bundles de Symfony pour pouvoir exporter mon code facilement d’un projet à l’autre, et seulement les parties qui m’intéressent.

Sinon, tu peux taper le mot clef "acl" sur https://www.npmjs.com, j’espère que tu y trouveras ton bonheur.

Je n’aime pas la logique d’ACL de faire les permissions aux niveaux URL ou methode HTTP, je préfère le faire au méthode du middleware.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte