Try loadComponent in initialize instead of $components attribute.

On Mon, Aug 3, 2015 at 6:33 AM, ItsAvinash <er.avinash.mis...@gmail.com>
wrote:

> I was trying to implement auth in a plugin that I created.
>
> Lets suppose there is a controller name Team, in which there are few
> functions like login() logout() index() apart from other crud functions.
>
> Following is the sample code of team controller
>
>     namespace Team\Controller;
>
>     use Team\Controller\AppController;
>     use Cake\Event\Event;
>     use Cake\Network\Exception\NotFoundException;
>     class TeamsController extends AppController {
>
>
>
>      public function beforeFilter(\Cake\Event\Event $event)
> {
> $this->Auth->allow(['login','logout']);
> }
>
>     public function index()
>     {
>         $this->paginate = [
>             'contain' => ['TeamRoles']
>         ];
>         $this->set('teams', $this->paginate($this->Teams));
>         $this->set('_serialize', ['teams']);
>     }
>     public function login()
> {
> $this->layout = 'logindefault';
> if ($this->request->is('post')) {
> $user = $this->Auth->identify();
> if ($user) {
> $this->Auth->setUser($user);
> return $this->redirect($this->Auth->redirectUrl());
> }
> $this->Flash->error(__('Invalid username or password, try again'));
> }
> }
>
> public function logout()
> {
> return $this->redirect($this->Auth->logout());
> }
>
> Above code is working fine, if i directly go to the login url.
> But If i am trying to go to index page. It redirects me to the users
> controller login function which for obvious reason don't exist.
>
> Following is my app controller code.
>
>     namespace Team\Controller;
>     use App\Controller\AppController as BaseController;
>     use Cake\Event\Event;
>     class AppController extends BaseController {
>         public $components = array(
> 'Auth' => array(
> 'loginRedirect' => array(
> 'controller' => 'Teams',
> 'action' => 'index'
> ),
>
> 'logoutRedirect' => array(
> 'controller' => 'Teams',
> 'action' => 'login'
> ),
>
> 'authenticate' => array(
>    'Form' => array(
>
>        'userModel' => 'Teams'
>    )
> ),
> )
> );
>     public function isAuthorized($user)
> {
> return false;
> }
>
>         public function initialize() {
>          $this->loadComponent('Flash');
>         }
>
>     }
> Kindly let me know, what have I missed??
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to cake-php+unsubscr...@googlegroups.com.
> To post to this group, send email to cake-php@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Atenciosamente,

Rafael F. Queiroz

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to