I’m working on the blog/user auth tutorial for cakephp and trying to add a couple features to get the hang of things.I’m on this page of the auth right now
http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html
I’m trying to display a link to logout only if the user is logged in, and a login link only if the user is logged out. I’m trying to follow the advice from this post CakePHP check if user is logged in inside a view but I’m a bit confused.
edit- To make sure my authuser was being found correctly I simply put an echo “test” statement in there. The links were working fine, however, when I removed the echo statement the link will only display login, even when I am logged in. I can’t figure out why the links are only working properly when I echo something in my element.
So, on my posts/index page I have the following
<?php
if($this->element('authuser') == TRUE){
?>
<p><?php echo $this->Html->link('Log In', array('controller'=>'users','action' => 'login')); ?></p>
<?
}
else{
?>
<p><?php echo $this->Html->link('Log Out', array('controller'=>'users','action' => 'logout')); ?></p>
<?
}
?>
My element authuser.ctp contains
<?
$authuser = AuthComponent::user();
if($authuser){
RETURN TRUE;
}
echo "test"; //when this is commented out the link on posts/index only displays login
?>
You can always get current loged in user in view by calling static method
Instead of passing it from action, in this way you can get currenly loged user anywhere.
Anyway i recommend you add this logic into element and reuse it.