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 :

Installation de plugin SimpleAccessControl


Sujet :

Ruby on Rails

  1. #1
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut Installation de plugin SimpleAccessControl
    Est-ce quelqu'un sait comment installer ce plugin? je suis sous Windows. La commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ruby script/plugin install -x
    http://mabs29.googlecode.com/svn/trunk/plugins/simple_access_control
    donne l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C:\Documents and Settings\E134276>ruby script/plugin install -x http://mabs29.googlecode.com/svn/tru
    nk/plugins/simple_access_control
    ruby: No such file or directory -- script/plugin (LoadError)
     
    C:\Documents and Settings\E134276>
    Si je me mets dans le répertoire de l'application, j'ai une autre erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot install using externals because this project is not under subversion.
    Un idée?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Ton projet est-il sur subversion ?
    Si ce n'est pas le cas, le switch -x n'a pas de sens, réessaye sans.
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  3. #3
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    J'ao essayé sans '-x'; Voici ce que ça a donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    C:\Documents and Settings\E134276\My Documents\NetBeansProjects\access>ruby script/plugin install http://mabs29.googlecode.com/svn/trunk/plugins/simple_access_control
    Plugin not found: ["http://mabs29.googlecode.com/svn/trunk/plugins/simple_access_control"]
    Si j'exécute avec 'back slash' comme ruby script\plugin install...etc. - le resulat ets pareil. Ceci crée un répertoire vide 'simple_access_control' dans 'mon_application/vendor'/plugins'.
    Évidemment, si je réexécute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    C:\Documents and Settings\E134276\My Documents\NetBeansProjects\access>ruby script/plugin install ht
    tp://mabs29.googlecode.com/svn/trunk/plugins/simple_access_control
    already installed: simple_access_control (http://mabs29.googlecode.com/svn/trunk/plugins/simple_acce
    ss_control).  pass --force to reinstall
    Je crois qu'il faut maintenant créer la même structure des fichiers et dossiers dans le répertoire 'simple_access_control' et télécharger chaque fichier séparément à partir de ce site. Je vais essayer tout à l'heure et poster mes résultats.

  4. #4
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Bon les voilà. Donc, je n'ai pas crée une table de jointure RolesUsers entre Users et Roles comme il était conseillé dans la doc puisque mon utilisateur ne peut avoir qu'un seul role. Donc il y a table Users:
    et Roles:
    J'ai installé si je peux le dire SimpleAccessControl plugin en exécutant la commande à partir de mon répertoire de l'application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ruby script/plugin install http://mabs29.googlecode.com/svn/trunk/plugins/simple_access_control
    ce qui a créé un répertoire 'simple_access_control' dans 'mon application\vendor\plugins'. J'ai recopié tous les fichiers propres à ce plugin à l'endroit où ils se trouvaient dans leur plugin pour avoir la même structure.
    Puis j'ai ajouté les methodes suivantes dans le controller de l'application - application.rb:
    Code : 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
    18
    19
     
    def current_user
        @current_user = session[:user]
      end
     
      def logged_in?
        @current_user.is_a? User
      end
     
      def permission_granted
        logger.info("[authentication] Permission granted to %s at %s for %s" %
          [@current_user.name , Time.now, request.request_uri])
      end
     
      def permission_denied
        logger.info("[authentication] Permission denied to %s at %s for %s" %
          [@current_user.name, Time.now, request.request_uri])
        flash[:notice] = "Permission denied. Ask your Administrator for further details."
      end
    Et dans mon UsersController j'ai ajouté ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    access_rule 'admin', :only => :destroy
    access_rule 'user', :only => [:new, :create, :edit, :update]
    Je mets mon user dans la session dans un autre controller. Sans utiliser ce plugin tout fonctionne. Après l'exécution de 'http://localhost:3000/users' j'a eu ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    undefined method `access_rule' for UsersController:Class
    Je crois que le problème est quand même du à la mauvaise installation du plugin. En tout cas je ne sais pas comment l'installer proprement.
    Maintenant je ne sais vraiment pas comment le faire fonctionner.

  5. #5
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    J'ai creusé un peu tout par tout avant de trouver la réponse.
    la première chose à faire, - ajouter la source où se trouve ce plugin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ruby script/plugin discover
    Vous allez voir une liste des sites regroupant des plugins. Ils apparaissent un par un avec un proposition s'il faut le rajouter (Y/N). Trouver celui dont on avait besoin:
    [code]
    http://mabs29.googlecode.com/svn/trunk/plugins
    [code] et tapez 'Y'.
    Le plugin va s'installer dans 'simple_access_control et mettre tous les fichiers dans le répertoire "MonApplicationRails/vendor/plugins/simple_control_access".
    ATTENTION! Si jamais vous êtes derièr un proxy, la commande ruby script/plugin discover ne s'exécutera pas. Il faudra faire quelques modifs. les détails sont ici.Après il faudra ajouter les méthodes du plugin comme expliqué dans le fichier README du plugin. Pour l'instant je n'arrive pas à le faire fonctionner. Les Users qui n'ont pas de privilèges arrivent quand même à appeler l'action destroy.
    J'ai mis dans application.rb les méthodes suivantes du plugin:
    Code : 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
    18
    19
     
    def current_user
        @user
      end
     
      def logged_in?
        @user.is_a? User
      end
     
      def permission_granted
        logger.info("[authentication] Permission granted to %s at %s for %s" %
          [@user.name , Time.now, request.request_uri])
      end
     
      def permission_denied
        logger.info("[authentication] Permission denied to %s at %s for %s" %
          [@user.name, Time.now, request.request_uri])
        flash[:notice] = "Permission denied. Ask your Administrator for further details."
      end
    Si quelqu'un a déjà su resoudre et utiliser ce plugin, les conseils sont les bienvenus. Moi, je continue à chercher.

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652

  7. #7
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Alors là, je ne comprends pas. Dans son README il dit qu'il faut mettre access_rule dans UsersController, par exemple, comme je l'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    access_rule 'user', :only => [:new, :edit, :create, :update]
    Et sur son blog il les met dans ApplicationController; En plus, je n'ai pas trouvé l'info si ce plugin va fonctionner sans créer many-to-many relation entre Users et Roles. Qu'est-ce que tu en penses?

  8. #8
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Je crois que dans mon cas il faut modifier le fichier 'simple_access_control.rb' pour éliminer l'appel de user.roles puisque dans mon cas ce sera user.role ainsi que la méthode 'check'. C'est la première chose à faire à mon avis.

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Essaye plutot de trouver le plugin qui correspond à ton besoin.
    Si t'as pas besoin des rôles, un simple auth_system devrait suffir.

    Si tu as besoin des roles, meme si tu prévois d'en attribuer qu'un seul par user, c'est pas grave, installe le plugin correctement, et tu ne mettras que 1 role. (qui peut le "plus" peut le "moins"...)

    Si tu commences à vouloir contourner le plugin alors qu'il n'est meme pas encore installé, c'est que tu as un probleme de choix au départ.

    En plus, je n'ai pas trouvé l'info si ce plugin va fonctionner sans créer many-to-many relation entre Users et Roles. Qu'est-ce que tu en penses?
    Je pense que ça ne marchera pas.
    Il faut suivre exactement à la lettre ce qu'il dit dans la procédure d'install.

    Alors là, je ne comprends pas. Dans son README il dit qu'il faut mettre access_rule dans UsersController, par exemple, comme je l'ai fait:
    Code :
    access_rule 'user', :only => [:new, :edit, :create, :update]
    Et sur son blog il les met dans ApplicationController;
    Je pense qu'il faut mettre access_rule dans chaque controleur où tu en as besoin.
    Si tu en as besoin dans toute l'application, alors tu peux le mettre dans le controleur de l'application directement, 1 et 1 seule fois, il servira tous les autres controleurs.

  10. #10
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Comment peut-on limiter à un User à n'avoir qu'un seul Role en cas de relations entre Users-Roles comme many-to-many?

Discussions similaires

  1. [Plugin][VE]Comment installer un plugin ?
    Par Smalljim dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/02/2006, 19h38
  2. Eclipse + Tomcat: probleme d'install du plugin sysdeo
    Par cladsam dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 01/02/2006, 15h28
  3. [Plugin]installer des plugins
    Par narkhor dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/12/2005, 15h30
  4. [débutant!] Comment on installe un plugin?
    Par cyril.ppn dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 21/04/2005, 08h37
  5. [Plugin][Tomcat]impossible d'installer le plugin tomcat
    Par LSL dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 06/04/2005, 09h57

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