Salut je vient ici car je rencontre un probleme avec mon entity de user
J'ai mon fichier UsersController :
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
<?php
namespace App\Controller\Admin;
 
use Cake\Event\Event;
 
class UsersController extends AppController{
 
    public function beforeFilter(Event $event) {
        $this->Auth->allow(['logout', 'add']);
    }
 
    public function add() {
        $user = $this->Users->newEntity();
        if ($this->request->is('post')) {
            $user = $this->Users->patchEntity($user, $this->request->data);
            if ($this->Users->save($user)) {
                $this->Flash->success('Vous ete inscrit');
                return $this->redirect(['controller' => 'Galleries', 'action' => 'index']);
            }
            $this->Flash->error('Impossible de vous inscrire');
        }
        $this->set(compact('user'));
    }
 
    public function login() {
        $user = $this->Users->newEntity();
        if ($this->request->is('post')) {
            $user = $this->Auth->identify();
            if ($user) {
                $this->Auth->setUser($user);
                return $this->redirect($this->Auth->redirectUrl());
            }
            $this->Flash->error('Impossible de vous connecter');
        }
        $this->set(compact('user'));
    }
 
    public function logout() {
        return $this->redirect($this->Auth->logout());
    }
 
}
et mon fichier User :
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
<?php
namespace App\Model\Entity;
 
use Cake\Auth\DefaultPasswordHasher;
use Cake\ORM\Entity;
 
class User extends Entity
{
 
    // Rend les champs assignables en masse sauf pour le champ clé primaire "id".
    protected $_accessible = [
        '*' => true,
        'id' => false
    ];
 
    // ...
 
    protected function _setPassword($password)
    {
        return (new DefaultPasswordHasher)->hash($password);
    }
 
    // ...
}
mais le probleme c'est quand quand je creer des nouvelle utilisateur il m'utilise l'entity de base et pas celle de user donc le mot de passe n'est pas haché c'est la premiere fois que j'ai un proble avec les entity et je ne voit pas d'ou ca peut venir
mon systeme d'identification se situe dans le prefix admin car enfete je n'est pas besoin d'identification dans tout les reste de mon application sauf dans la partie administation.
pour la configuration du composant Auth j'ai mit dans mon AppController qui se situe dans le prefix admin :
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
<?php
namespace App\Controller\Admin;
 
use App\Controller\AppController as Controller;
use Cake\Event\Event;
 
class AppController extends Controller{
 
    public $helpers = ['AkkaCKEditor.CKEditor' => [
        'version' => '4.5.3',
    ]];
 
    public function initialize() {
        $this->loadComponent('Flash');
        $this->loadComponent('Auth', [
            'authorize' => ['Controller'],
            'loginRedirect' => [
                'controller' => 'Galleries',
                'action' => 'index'
            ],
            'logoutRedirect' => [
                'controller' => 'Presses',
                'action' => 'index'
            ],
            'loginAction' => [
                'controller' => 'Users',
                'action' => 'login'
            ]
        ]);
    }
 
    public function beforeRender(Event $event) {
        parent::beforeRender($event);
        $this->viewBuilder()->layout('admin');
    }
 
}