So, im getting solution:
In layout:
...if session is null...
if ($this->requestAction('users/getUserRole') == 'admin')
{
echo $this->element('admin_menu');
}
in UsersController:
function getUserRole()
{
if (!$this->Auth->user())
{
$cookie = $this->Cookie->read('Auth.User');
if (!is_null($cookie)) {
if ($this->Auth->login($cookie)) {
$this->Session->del("goBack");
$this->Session->del('Message.auth');
}
}
}
return $this->Auth->user('role');
}
Tankist:
> Hello everyone.
>
> I have some trouble with Auth when using caching of main page.
> I want that users will auto-login when they open main page. Login of
> auto login from cookies implemented in AppController::beforeFilter:
>
> if (!$this->Auth->user())
> {
> $cookie = $this->Cookie->read('Auth.User');
> if (!is_null($cookie)) {
> if ($this->Auth->login($cookie)) {
> $this->Session->del("goBack");
> $this->Session->del('Message.auth');
> }
> }
> }
>
> But when users open cached first page CakePHP not execute
> beforeFilter. When user goes to no-caching page beforeFilter executing
> and he login automated.
> Problem here(layout/default.ctp)
>
> <cake:nocache>
> <?
> if ($session->read("Auth.User.role") == 'accepted')
> {
> echo $this->element('user_menu');
> }
> ?>
> </cake:nocache>
>
> So user dont see menu before he go to another page =(
>
> Any solution?
> I see two ways:
> 1. How i can use Auth, Cookie and Session components from my layout?
> ClassRegistry::init(...) didnt work here =(
> 2. Any actions in controllers are called when opens Cached page?
>
> Big sorry for my english language =/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---