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

Plugins PHP Discussion :

sfdoctrineguardplugin user connecté.


Sujet :

Plugins PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut sfdoctrineguardplugin user connecté.
    Bonjour,
    je travaille avec sfdoctrineguardplugin sous doctrine.le besoin est : comment récupérer le nom et le groupe de la personne connecté depuis la table sf_gurad_user pour le nom est sf_guard_group pour le group???

    merci d'avance !!!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    Dans les actions tu peux faire :
    pour récupérer l'utilisateur et à partir de là utiliser toutes les méthodes de l'objet sfGuardUser.

    Dans les templates, c'est :
    qui te permet de manipuler les variables de la session.

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    oui merci
    mais si par exemple :
    j'ai une requette dans l'un de mes module et je veux récupérer le nom et la permission du personne connecté pour les étuliser dans la requette .

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 124
    Par défaut
    Si tu utilise le plugin sfForkedDoctrineApply, il fournit plusieurs méthodes pour avoir le nom, les permissions etc.

    Sinon, je connais pas le nom des méthodes.

  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
    En fait, les autorisations sont gérée par sfGuard et pas sfFADP.

    Tu as plusieurs solutions qui dépendent de la manière dont tu souhaites implémenter la chose. Si tu comptes mettre des droits par module, tu peux le faire directement au niveau d'un fichier security.yml dans le dossier config de chaque module.

    Tu peux aussi envisager de mettre un nom d'un groupe dans un enregistrement et vérifier, une fois les données récupérée que la personne est bien membre de ce groupe par un $user->hasCredential($leNomDuGroupe) où $user est une instance de l'objet myUser.

    Tu as de très nombreuses possibilités (et aussi quelques impossibilités), à toi de préciser quel est exactement ta demande. Tu peux facilement récupérer l'id d'un user. Tu peux aussi récupérer les groupes dont il est membre par un $user->getCredentials(). A toi de voir comment utiliser ces informations au mieux de tes besoins.

  6. #6
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut fonction return data user.
    re,
    voila exactement mon besoin,c'est la récupération de username au sein de ma fonction MissionTable.class.php:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT sf_guard_group.description,sf_guard_permission.name
    FROM sf_guard_user, sf_guard_user_group, sf_guard_group,missionaire
    WHERE sf_guard_user.id = sf_guard_user_group.user_id
    AND sf_guard_user_group.group_id = sf_guard_group.id
    AND sf_guard_user.username =  recupérer login personne connecté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    SfGuardGroup:
      connection: doctrine
      tableName: sf_guard_group
      columns:
        id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        name:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        description:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardGroupPermission:
          local: id
          foreign: group_id
          type: many
        SfGuardUserGroup:
          local: id
          foreign: group_id
          type: many
    SfGuardGroupPermission:
      connection: doctrine
      tableName: sf_guard_group_permission
      columns:
        group_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        permission_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardGroup:
          local: group_id
          foreign: id
          type: one
        SfGuardPermission:
          local: permission_id
          foreign: id
          type: one
    SfGuardPermission:
      connection: doctrine
      tableName: sf_guard_permission
      columns:
        id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        name:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        description:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardGroupPermission:
          local: id
          foreign: permission_id
          type: many
        SfGuardUserPermission:
          local: id
          foreign: permission_id
          type: many
    SfGuardUser:
      connection: doctrine
      tableName: sf_guard_user
      columns:
        id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        first_name:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        last_name:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        email_address:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        username:
          type: string(128)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        algorithm:
          type: string(128)
          fixed: false
          unsigned: false
          primary: false
          default: sha1
          notnull: true
          autoincrement: false
        salt:
          type: string(128)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        password:
          type: string(128)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        is_active:
          type: integer(1)
          fixed: false
          unsigned: false
          primary: false
          default: '1'
          notnull: false
          autoincrement: false
        is_super_admin:
          type: integer(1)
          fixed: false
          unsigned: false
          primary: false
          default: '0'
          notnull: false
          autoincrement: false
        last_login:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        matricule:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardForgotPassword:
          local: id
          foreign: user_id
          type: many
        SfGuardRememberKey:
          local: id
          foreign: user_id
          type: many
        SfGuardUserGroup:
          local: id
          foreign: user_id
          type: many
        SfGuardUserPermission:
          local: id
          foreign: user_id
          type: many
    SfGuardUserGroup:
      connection: doctrine
      tableName: sf_guard_user_group
      columns:
        user_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        group_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardGroup:
          local: group_id
          foreign: id
          type: one
        SfGuardUser:
          local: user_id
          foreign: id
          type: one
    SfGuardUserPermission:
      connection: doctrine
      tableName: sf_guard_user_permission
      columns:
        user_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        permission_id:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        created_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        updated_at:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        SfGuardPermission:
          local: permission_id
          foreign: id
          type: one
        SfGuardUser:
          local: user_id
          foreign: id
          type: one
    merci d'avance et pour mon chéma je trouve pas d'alaice est se que je doit les ajouter manuelement au fihcier ou contunier commsa ???merci

  7. #7
    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
    Si ta requête retourne quelque chose, cela tiens du miracle.

    Tu fais appel à une table sf_guard_permission qui n'est pas dans la close FROM et tu embarques une table "missionnaire" qui n'est ni dans le SELECT ni liée aux autres tables dans les closes de ton WHERE et encore moins dans ton shema.yml

    As-tu testé ta requête ainsi rédigée dans un outil de query, style phpMyAdmin ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    c'est seulement au moment de copier coller j'ai pas fait le tous voila le besoin exacte sans passer par les jointure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MissionTable extends Doctrine_Table {
      function user() {
      $sf_user->getGuardUser()->getUserName();
        }
    j'obtient les erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined variable: sf_user in C:\wamp\www\Gestion_missions\lib\model\doctrine\MissionTable.class.php on line 155
     
    Fatal error: Call to a member function getGuardUser() on a non-object in C:\wamp\www\Gestion_missions\lib\model\doctrine\MissionTable.class.php on line 155
    la variable $sf_user est accécible que depuis mon Layout ???

    + Est t'il possible de récupérer le groupe de la personne connecté avec une simple syntaxe.
    Merci !!!!

  9. #9
    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
    As-tu modifier le MyUser dans le lib de l'application (appl/<nomApplication>/lib) pour qu'il hérite de celui de sfGuard ?

  10. #10
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    Bonjour;et merci .
    non j'ai pas fait sa mais dans le chemain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\wamp\www\Gestion_missions\lib
    j'ai 4 dossier :
    filter
    form
    model
    symfony

  11. #11
    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
    c/f le readme de sfGuard, il FAUT modifier l'objet MyUser pour qu'il prenne en compte les particularités de sfGuard.

    Ensuite, depuis l'objet user (soit par sf_user, soit par ->getUser() ) ont peut tester si l’utilisateur courant est membre d'un groupe ou récupérer la liste des droits de l'utilisateur.

  12. #12
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    voila le Myuser que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\wamp\www\Gestion_missions\apps\frontend\lib
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    class myUser extends sfGuardSecurityUser
    {
    }
    qu'est se que je doit faire la parce que je voi déja k'il hérite de sfGuard???

  13. #13
    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
    Dans une table, pour récupérer l'objet user il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $user = sfContext::getInstance()->getUser();
    $nameUser= $user->getGuardUser()->getName();
    La variable sf_user n'est définie que dans le template.

  14. #14
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    Bonjour michel Rotta voila j'ai peu récupérer le username de la personne connecté depuis ma class grace a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sfContext::getInstance()->getUser()->getUserName()
    et concérnent le group j'ai effectuer une requette fetchoine puisque mes etulisateur chaqu'un apartien q'ua a un seul group :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function profils_group() {
            $q = Doctrine_Query::create()
                    ->select('SP.description')
                    ->from('sfGuardGroup SP')
                    ->leftJoin('SP.sfGuardUserGroup SG')
                    ->leftJoin('SG.sfGuardUser SPP')
                    ->AndWhere('SPP.username=?',sfContext::getInstance()->getUser()->getUserName());
            $value=$q->fetchOne() ;
            $this->group_connect=$value->getDescription();
    et dans les class de SfDoctrineGuardPlugin j'ai redéfinie les relation seulement pour supprimé les alaice pas dans les class de base mais dans les class qui hérite .class.php.

  15. #15
    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
    A priori la requête me semble viable.

    Par contre, je ne vois pas trop l'intérêt de récupérer le groupe. En effet, un utilisateur peut appartenir à plusieurs groupes. Donc un des groupes à peut d'intérêt.

    De plus, le groupe n'est qu'un des deux moyens de donner des droits aux utilisateurs. Au final, ce qui compte c'est de savoir si un utilisateur à tel ou tel autre droits. Le fait qu'il l’obtienne par appartenance à un groupe (ou plusieurs) ou directement importe peu, ce qui compte c'est qu'il ait ou non le droits.

    A partir de là, la méthode idéal pour récupérer les droits est, sur un objet user, ->getCredentials() qui va retourner un tableau de tous les droits. Encore mieux, cette méthode fait partie du sfBaseSecurityUser qu’étend le sfGuardUser. Si, un jour, pour une raison quelconque tu décide de changer ton outil de sécurité, si le nouveau étant sfBaseSecurityUser, comme sfGuard, tu n'auras pas, alors, à retoucher le code qui récupère les droits.

    Accessoirement, savoir si un utilisateur à un droit particulier peut, à partir de l'objet user, ce faire par ->hasCredential().

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2006, 19h28
  2. les users connectés à une base oracle
    Par progima dans le forum Oracle
    Réponses: 8
    Dernier message: 08/11/2005, 17h43
  3. liste des users connectés à une base acces
    Par progima dans le forum Access
    Réponses: 2
    Dernier message: 07/11/2005, 16h45
  4. Nbre de users connectés à une base
    Par yanis97 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2005, 10h39

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