Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2011, 11h56   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 77
Points : 12
Points : 12
Par défaut sfDoctrineGuardplugin credentials dynamique

Bonjour,

J'utilise sur un projet, le plugin sfGuardDoctrinePlugin pour gerer mes utilisateurs et surtout pour sécuriser mes modules à l'aide des permissions et des credentials.
voila mon problème, j'aimerais pouvoir ajouter des permissions et donner des credentials dynamiquement sans passer par le fichier security.yml à un module que j'aurais choisis; à l'aide d'une interface admin,
Comment faire ?
Merci.
lepopol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 14h07   #2
Membre habitué
 
Homme Ludovic
Étudiant
Inscription : janvier 2011
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 124
Points : 140
Points : 140
Si j'ai bien compris tu veux une interface web pour gérer les permissions, les groupes et les utilisateurs ?
Si oui, tu regarde dans le README du plugin et il t'explique comment activer les modules sfGuardUser, sfGuardGroup et sfGuardPermission.

Sinon, j'ai pas compris la question
PeytaWodka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 14h16   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 77
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 77
Points : 12
Points : 12
en fait pour donner des permissions en un groupe d'utilisateur sur un module.je dois faire ceci dans security.yml
default:
is_secure: true
credential: permission A

en fait je voudrais ne pas avoir à venir dans mon code pour donner cette permission à ce module. Est ce que ca peut être géré dynamiquement à partir d'une interface user (admin).
lepopol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 15h03   #4
Membre habitué
 
Homme Ludovic
Étudiant
Inscription : janvier 2011
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Ludovic
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 124
Points : 140
Points : 140
Ah d'accord.
Je ne sais pas si c'est réalisable, je peux pas t'aider.
PeytaWodka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 18h38   #5
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
sfDoctrineGuardPlugins utilise un objet qui hérite de sfSecurityUser.

C'est là que les credentiels sont géré pour symfony (même si sfDGP les stocks dans un ensemble de table).

Il existe une commande de l'objet user qui permet de savoir si l'utilisateur à un droit en particulier, la commande hasCredential().

On peut donc envisager avant une action une commande du genre
Code :
1
2
// code non testé
$this->foward404until($this->getUser()->hasCredential('MonDroitAMoi'));
qui vas vérifier que l'utilisateur a le droit "MonDroitAMoi" et si non envoie sur la page 404 (d'autres actions sont possibles).

Il est aussi possible d'utiliser les méthode preExecute() a définir dans le module action.class.php du module qui permettent de donner des droits pour toutes les actions d'un module.

A partir de là, on peut broder un peu comme on veut.

ATTENTION ! Le super utilisateur retourne toujours vrai à la méthode hasCredential(), même si il n'a pas le droit. Ceci peut poser un problème dans le cas d'un test par la négative dans le genre "tel groupe n'a pas accès à". Dans ce cas, un super utilisateur "n'aura jamais accès à".
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h04.


 
 
 
 
Partenaires

Hébergement Web