IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

Rails 3 - Sessions et gestion des droits


Sujet :

Ruby on Rails

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Points : 44
    Points
    44
    Par défaut Rails 3 - Sessions et gestion des droits
    Bonjour,

    Je suis actuellement en train d'apprendre rails. Je bloque sur les sessions et les droits d'accès.
    Pour m'entrainer avec rails, j'ai choisi de faire un projet avec des utilisateurs, des articles et des commentaires sur les articles. Pour chaque articles et commentaires, on peut les créer, éditer et supprimer.
    La page d'accueil est composée d'un récapitulatif des articles.
    J'ai créé une page de login utilisant une session pour se connecter et vérifiant l'id et le mot de passe de l'utilisateur.
    Le problème est que je souhaiterais que la page d'accueil ne soit accessible qu'aux personnes authentifiées.

    J'ai essayé d'ajouter une contrainte dans le controller : before_filter : authenticate
    Mais cela ne marche pas et n'importe qui a accès à la page de récap des articles ..

    Quelqu'un pourrait m'expliquer ?

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Que contiennent tes filtres qui ne marchent pas ?

    Pour mettre en place des ACL, j'utilise souvent Declarative Authorization : très simple d'utilisation et efficace !
    Ça repose sur une méthode current_user qui doit retourner un objet disposant d'une méthode role_symbols retournant un tableau de symboles pour les rôles.
    Ensuite, les règles sont déclarées dans un fichier config/authorization_rules.rb qui ressemble à ceci :

    Code Ruby : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    authorization do 
      role :user do
        has_permission_on :sessions, :to => [ :destroy ]
        has_permission_on :articles, :to => [ :new, :create ]
        has_permission_on :articles, :to => [ :edit, :update, :destroy] do
          if_attribute :author => is {user}
        end
        includes :guest
      end
     
      role :guest do
        has_permission_on :articles, :to => [ :index, :show ]
        has_permission_on :sessions, :to => [ :create ]
        has_permission_on :users, :to => [ :new, :create ]
      end
    end

    Le rôle guest est assumé si current_user retourne nil.

    Voilà, j'espère que ça t'aura éclairé !

Discussions similaires

  1. Gestion des droits avec session serveur
    Par comode dans le forum Windows XP
    Réponses: 3
    Dernier message: 17/10/2009, 20h39
  2. [Session] Gestion des droits en PHP
    Par persi dans le forum Langage
    Réponses: 3
    Dernier message: 22/02/2006, 14h54
  3. gestion des droits d'accès : pg_hda.conf et autres
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 12/02/2005, 07h57
  4. Gestion des droits
    Par totop dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/01/2005, 09h49
  5. Gestion des droits d'accès
    Par soulryo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo