[sfGuardPlugin] requete sur permission utilisateur courant
bonjour,
j'ai une action qui permet d'afficher des images selon les droits de l'utilisateur.
Seulement, je cherche à optimiser le temps d’exécution de cette action et de son template. Je souhaiterais donc réaliser une seule requête me sortant les fichiers pour lequel l'utilisateur à l'autorisation de consultation à travers le plugin SfGuard.
Actuellement mon action :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $fichiers = Doctrine::getTable('fichier')
->createQuery('a')
->where('album_id = '.$request->getParameter('id'))
->execute();
$nb = 0;
$tabfic = array();
foreach($fichiers as $fichier)
{
if($fichier->droitlecture())
{
$tabfic[] = $fichier->getId();
$nb++;
}
}
$this->fichiers = Doctrine::getTable('fichier')
->createQuery('a')
->whereIn('id',$tabfic)
->orderBy('date DESC')
->fetchArray(); |
et la fonction droitlecture() dans lib/model
Code:
1 2 3 4 5 6 7 8
| //Fonction qui dit si oui ou non l'utilisateur à le droit d'accès en lecture sur le fichier
public function droitlecture()
{
if(sfContext::getInstance()->getUser()->hasCredential('fichier'.$this->getId().'show'))
return true;
else
return false;
} |
si vous avez une piste des liaisons de la requête.