我正在使用L3创建一个网站,以便客人可以在不需要登录的情况下发表评论,然后会有管理员登录。我有一个用于导航和管理员导航的菜单栏,但在管理员登录时,菜单栏应该有更多选项。在我的布局上,这就是我所拥有的;
<div class="nav-collapse collapse" id="main-menu">
<ul class="nav" id="main-menu-left">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Contact Us<b class="caret"></b></a>
<ul class="dropdown-menu" id="swatch-menu">
<li>{{HTML::link('posts/contact','Leave a coment')}}</li>
<li>{{HTML::link('posts/location','Grt Our Locations')}}</li>
@if (Session::has('permission'))
<li>{{HTML::link('posts/review','Review Posts')}}</li>
<li>{{HTML::link('posts/list','List all Posts')}}</li>
@endif
</ul>
</div>
在我的管理员控制器上,我创建了一个会话,以便只有管理员可以访问帖子/评论和帖子/列表。这就是我所拥有的
public function post_login()
{
$email = Input::get('email');
$password = Input::get('password');
$credentials = array
('username' => $email,
'password' => $password);
if (Auth::attempt($credentials))
{
Session::put('permission', 'admin');
return Redirect::to('admin/index');
} else
{
Session::flash('status_error', 'Your email or password is invalid - please try again.');
return Redirect::to('admin/login');
}
}
这项工作正常,但是当客户将鼠标悬停在菜单栏上时可以看到管理员链接(即他们可以看到“评论帖子”和“列出所有帖子”。但他们无法访问这些页面(他们被重定向到管理员登录页面。。我的问题是,如何让这些链接对访客不可见,但管理员在登录时可见?访客和管理员都必须使用相同的布局。提前谢谢。
答案 0 :(得分:3)
您应该使用以下方法而不是会话:
@if (Auth::user())
<a href="#">Admin</a>
@endif
答案 1 :(得分:0)
您好像已经登录过一次,然后再次注销以测试该网站。看起来您没有在退出时清除“许可”会话。