Bonjour,

Je bute depuis quelques jours pour integrer mes role dans mon authentification.

j'ai dans mon appcontroller pour Auth un contain d'un belonToMany (Groupes) pour une table relationnel

//TableUsers
$this->hasOne('Profil', ['foreignKey' => 'user_id']);
$this->belongsToMany('Groupes', [
                'foreignKey' => 'user_id',
                'joinTable' => 'users_groupes',
]);

//AppController
$this->loadComponent('Auth', [
            'authenticate' => [
                'Form' => [
                    'contain' => [
                        'Groupes',
                        'Profil' => ['fields' => ['nom', 'prenom']]
                    ]
                ]
            ],
            'authorize' => ['Controller'],
            'loginRedirect' => [
                'controller' => 'Articles',
                'action' => 'index'
            ],
            'logoutRedirect' => [
                'controller' => 'Articles',
                'action' => 'index'
            ]
        ]);

Jusque la pas de problemes
Pour ce qui est l'identification pas de problemes.
le debug

[
    'id' => (int) 3,
    'username' => 'blabla',
    'role' => 'author',
    'created' => null,
    'modified' => null,
    'profil' => [
        'nom' => 'blabla',
        'prenom' => 'blabla'
    ],
    'groupes' => [
        (int) 0 => [
            'id' => (int) 2,
            'intitule' => 'moderator',
            '_joinData' => [
                'groupe_id' => (int) 2,
                'user_id' => (int) 4
            ]
        ],
        (int) 1 => [
            'id' => (int) 3,
            'intitule' => 'author',
            '_joinData' => [
                'groupe_id' => (int) 3,
                'user_id' => (int) 4
            ]
        ]
    ]
]

J'aime pouvoir avoir simplement dans mes groupes un simple array du style

'groupes' => [
        (int) 0 => [
            'author',
            ]
            (int) 1 => [
            'moderator',
            ]
        ]

J'ai essayé les finders perso ou select de fields mais a chaque fois je cale
Et franchement plus idées
Merci a tous

3 réponses


Tu devrais trouver la réponse ici : Authentification » Personnaliser la Requête de Recherche, surtout que l'option containdans le composant Auth sont déprécié depuis la v3.1.

nash00fr
Auteur

merci pout réponse

a l'heure actuelle contain est loin d'etre deprecié.
Et il me semble que la 3.1 n'est toujours pas release

Même si elle n'est pas encore effective, elle le sera prochainement et comme on dit, Il vaut mieux prévoir que guérir, libre à toi de prendre le risque de devoir modifier ton codage quand la version 3.1 sera effective.
Actuellement elle est en beta et personnellement, je préfère m'habituer aux futures modifications du Framework, que de devoir réadapter mon code avec celui-ci par la suite.