2017-09-21 20 views
0

J'essaie de trouver un bijou qui gère l'accès géré par l'utilisateur pour une application Rails. Il existe de nombreux joyaux basés sur les rôles, mais ils ne répondent pas tout à fait au besoin. Le meilleur exemple de scénario que je pense est le suivant:Accès géré par l'utilisateur pour Rails Application

J'ai un modèle avec une liste d'actions qui peuvent être utilisées pour différentes méthodes (c'est-à-dire RECORD_CREATE et RECORD_UPDATE). Je souhaite autoriser les utilisateurs à effectuer ces actions ou à empêcher les utilisateurs d'effectuer ces actions. En outre, j'aimerais créer des autorisations de groupe de la même manière tout en ayant la possibilité d'ajouter des autorisations supplémentaires pour un utilisateur sans créer de groupe spécifique différent. Tout cela, je voudrais être en mesure de contrôler depuis l'intérieur de l'application et non à partir d'un fichier ruby ​​dans lib. Y a-t-il un tel animal? J'ai regardé mais en vain. Si ce n'est pas le cas, est-ce que quelqu'un veut m'aider à en faire un?

+0

Je pense que [Cancancan] (https://github.com/CanCanCommunity/cancancan) répond à vos besoins. Nous avons la possibilité de personnaliser cela en fonction de nos besoins. Reportez-vous au [Wiki] (https://github.com/CanCanCommunity/cancancan/wiki) pour plus de détails. –

+0

@HarrySuren. Cela ressemble à une très bonne solution mais j'ai du mal à la conceptualiser dans l'exécution. Je vais probablement construire une application de test et installer la gemme pour le tester. J'ai une solution maison qui fonctionne vraiment bien. J'ai une liste d'actions et je peux les activer/désactiver pour chaque utilisateur ou groupe depuis l'application. Ensuite, j'ai mis une méthode d'assistance au début de chaque action pour tester les autorisations pour cette action. Utilise seulement environ 10 lignes de code plus 1 ligne pour chaque test d'autorisation. –

+0

Trouvé cet article. Très intéressant et aimerait entendre plus d'opinions à ce sujet. https://www-old.amg.tv/blog/strongbolt-why-and-how-we-built-our-own-rails-authorization-framework –

Répondre

0

J'ai trouvé une gemme vraiment intéressante appelée Strongbolt qui est basée sur une gemme de Grant pour l'autorisation basée sur l'enregistrement. Toujours comprendre les complexités, mais semble être une option assez puissante.