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 21/11/2011, 14h44   #1
Invité de passage
 
Inscription : octobre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 7
Points : 1
Points : 1
Par défaut Credentials non détectées

Bonjour,

Dans le cadre d'un projet j'ai mis en place, via DoctrineGuard, différents utilisateurs que je répartis dans des groupes aux permissions distinctes.

Voici le fixtures.yml :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
sfGuardUser:
  User_admin:
    first_name:     admin
    last_name:      admin
    email_address:  admin@gmail.com
    username:       admin
    password:       admin
    is_super_admin: true
    Groups:         [Group_admin]
  Jane:
    first_name:     Jane
    last_name:      Doe
    email_address:  jane.doe@gmail.com
    username:       jane
    password:       open
    is_super_admin: false
    Groups:         [Group_site]
 
sfGuardGroup:
  Group_admin:
    name:           admin
    description:    Administrator group
    Permissions:    [Permission_admin]
  Group_site:
    name:           Gérant d'exploitation
    description:    Groupe des gérants d'exploitation
    Permissions:    [Parametres_ReadOnly]
 
sfGuardPermission:
  Permission_admin:
    name:           admin
    description:    Administrator permission
  Parametres_All:
    name:           Permissions Paramètres
    description:    Tous les droits sur les paramètres
  Parametres_ReadOnly:
    name:           Read Only Paramètres
    description:    Lecture seule sur les paramètres
C'est tout du côté de SfGuard, rien dans ma table sf_guard_user_permission par exemple.

Jane fait donc partie du groupe Site, appartenance lui octroyant alors les droits de ce site (ici Parametres_ReadOnly).

Dans le security.yml de mon module, j'ai mis en place la restriction suivante :
Code :
1
2
3
4
 
index:
  is_secure:   on
  credentials: [[Permission_admin, Parametres_All, Parametres_ReadOnly]]
Pour accéder à la page index de mon module, il faut l'une des 3 permissions : admin, all, ou read only. Dans le cas qui nous intéresse mes 2 utilisateurs sont censés pouvoir y accéder (admin a les droits d'admin, Jane a les droits en ReadOnly).

Le hic (car il y a un hic) c'est que seul admin accède à cette page, Jane se trouve confrontée à la page de permissions insuffisantes.

Pourtant, l'outil de debug m'indique, dans l'onglet User :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
options:
  auto_shutdown: false
  culture: null
  default_culture: fr_FR
  use_flash: true
  logging: '1'
  timeout: 1800
attributeHolder:
  sfGuardSecurityUser: { user_id: '2' }
  symfony/user/sfUser/attributes: {  }
culture: fr_FR
authenticated: true
credentials:
  - 'Read Only Paramètres'
Dans l'onglet Global :

Code :
1
2
3
4
5
session:
  symfony/user/sfUser/attributes: { symfony/user/sfUser/attributes: {  }, sfGuardSecurityUser: { user_id: '2' } }
  symfony/user/sfUser/authenticated: true
  symfony/user/sfUser/credentials: ['Read Only Paramètres']
  symfony/user/sfUser/culture: fr_FR
J'ai tenté un petit test simple dans mon template :

Code :
1
2
3
4
5
6
7
8
<?php if ($sf_user->isAuthenticated()): 
   echo $sf_user;
 endif ?>
<br/>
<?php if ($sf_user->hasCredential('Parametres_ReadOnly')): 
   echo "Parametres ReadOnly";
 endif ?>
<br/>
Avec admin : je récupère bien mon user et dessous Parametres ReadOnly
Avec Jane : uniquement son user.

J'ai vérifié point par point mes fichiers de configuration afin d'y trouver un potentiel oubli, ce qui n'a rien donné, j'espère trouver ici quelques pistes supplémentaires ! Merci !
Paincake 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 10h52.


 
 
 
 
Partenaires

Hébergement Web