[Symfony] generator.yml et droit utilisateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Symfony] generator.yml et droit utilisateur

par Calimero » 16 juin 2009, 12:03

A ton service, en effet ce n'était pas évident à trouver ;-)

EDIT : je rajoute la méthode qui va bien :
public static function getCountBatimentForUser()
  {
    $c = new Criteria();
    $c->add(self::BATIMENT_ID,sfContext::getInstance()->getUser()->getSubscriberBatiment());
    
    return self::doCount($c); // On remplace simplement doSelect par doCount, trop dur !
  } 

par agité » 16 juin 2009, 11:41

Merci beaucoup Calimero ;)

Re: [Syfmony] generator.yml et droit utilisateur

par Calimero » 16 juin 2009, 11:35

Tu auras la réponse en regardant les requêtes SQL effectuées dans ta barre de debug : pour générer le listing, symfony doit faire deux requêtes : un SELECT et un SELECT COUNT(...).

En utilisant peer_method seul tu n'agis que sur le SELECT qui peuple la liste, mais pas sur le compteur de résultats.

Il te manque donc ceci :

Code : Tout sélectionner

# .... list: title: Liste des marchés peer_method: getBatimentForUser peer_count_method: getCountBatimentForUser # ....

[Symfony] generator.yml et droit utilisateur

par agité » 16 juin 2009, 11:03

Bonjour,

Comme je suis sur un projet symfony je dois faire des liste avec l'admin gen pour l'utilisateur courant c'est à dire qu'il à accès seulement aux informations d'un bâtiment.

J'ai donc fais comme ceci dans l'admin generator :

Code : Tout sélectionner

generator: class: sfPropelAdminGenerator param: model_class: BatimentMarche theme: default list: title: Liste des marchés peer_method: getBatimentForUser display: [batiment, titre] object_actions: _edit: ~ _delete: ~
Et la méthode getBatimentForUser dans (/lib/model/BatimentMarchePeer.php :
  public static function getBatimentForUser()
  {
    $c = new Criteria();
    $c->add(self::BATIMENT_ID,sfContext::getInstance()->getUser()->getSubscriberBatiment());
    
    return self::doSelect($c);
  }
Jusque là tout est ok mise à par le sfContext dans le modèle qui fait tache :roll:

Il n'affiche aucun resultat dans le tableau mais j'ai quand même le header du tableau et le footer avec marqué 3 résultats (il parcours toute la table sans prendre compte du peer_method je pense).

Comment se fait-il qu'il n'affiche aucun résultat mais qu'il me mette 3 résultats.

Symfony 1.0