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

Symfony PHP Discussion :

Ne voir que les objets d'un utilisateur


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut Ne voir que les objets d'un utilisateur
    Bonjour,

    J'ai une table objet, qui contient en clé étrangère le sf_user_id, table créé par SfDoctrineGuardPlugin

    Lorsqu'un utilisateur créé un objet, la clé étrangère est renseignée pour correspondre à l'id de l'utilisateur.

    Ma question est de savoir comment faire pour que, avec l'admin generator, l'utilisateur n'ai accès qu'a ses objets ?

    Quelle méthode / class faut-il overrider ?

    ( Le filtre ne me semble pas être la bonne piste .. )

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    il y a un évènement admin.buildQuery (je suis plus sur du nom exact) qui devrai te servir (regarde dans ton fichier autoActions)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 13
    Par défaut
    Je ne comprends pas complètement comment marche les évenements dans Symfony (enfin pas encore)

    Mais je pense avoir trouvé une solution plus simple :

    L'utilisation de table_method avec une fonction qui va bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public function retrieveObjectFromUser(Doctrine_Query $q)
    	{
    		$q->andWhere('sf_guard_user_id = ?', sfContext::getInstance()->getUser()->getGuardUser()->getId());
     
    		return $q ;
    	}

  4. #4
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    oui, ça marche aussi de cette manière, mais c'est moins propre.

    Exemple d'utilisation des events:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function preExecute(){
        parent::preExecute();
     
        $this->dispatcher->connect('admin.build_query',array($this, 'defaultOrder'));
      }
     
      public function defaultOrder($event,Doctrine_Query $q){
        // modification de la requete ici
     
        return $q;
      }

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Et une autre solution encore plus simple.

    Sous doctrine

    Tu as la possibilité de créer dans ton objet modèle une méthode qui va te retourner les éléments nécessaires à la récupération des objets limités à utilisateurs.

    Première étape, tu dois avoir dans ton objet uesr l'Id de l'utilisaeur actuel "setParam('Id',<Id de l'user>).

    Tu crées une méthode dans ton modèle qui retourne la liste des objets pour ton utilisateur (en récupérant son id par le hasParam de l'objet utilisateur.

    Ensuite dans le générateur de ton admin tu précises liste: peer_methode: et le nom de la méthode sus créer.

    Ceci marche parfaitement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2012, 17h34
  2. requête qui permet de voir tout les objets directory
    Par webfranc dans le forum PL/SQL
    Réponses: 2
    Dernier message: 03/03/2009, 10h58
  3. Comment exporter les objets d'un utilisateur vers un autre ?
    Par p026687 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/05/2007, 18h00
  4. Ne voire que certaines extensions et masquer les autres
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/12/2005, 23h04
  5. Rafraichissement de la fiche ainsi que de tous les objets
    Par portu dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/01/2004, 00h25

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