我正在尝试限制拥有3方,管理员,用户和访问者(他们不是会员)的访问权限。我只是想在管理员和用户登录时从html中删除Register和Login标题。
这是头版。 session.usertype是一个管理员。 session.userid是所有登录的用户,包括管理员
<% if(session.usertype) { %>
<li><a href="/item">Item Manager</a></li>
<li><a href="/category">Category Manager</a></li>
<% } %>
<li><a href="/Register">Register</a></li>
<li><a href="/login">Login</a></li>
<% if(session.userid) {%>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><%= users.username %><span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="/profile">profile</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li class="dropdown-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
<% } %>
这是控制器
login:function(req,res){
var username = req.param('username');
var password = req.param('password');
//findOne find only one data info that first found.
User.findOne({username:username,password:password}).exec(function(err, result){
if(err){
return res.send(err);
}
if(result){
console.log(result);
req.session.userid = result.id;
req.session.usertype = result.type;
return res.redirect('/diy');
}
return res.view('user/login',{error:"username or password incorrect"});
});
结果图片。
但是当我以管理员身份登录时
答案 0 :(得分:0)
Ejs将呈现
<li><a href="/Register">Register</a></li>
<li><a href="/login">Login</a></li>
在所有条件下。您需要将其包裹在else
条件中。
<% if(session.usertype) { %>
<li><a href="/item">Item Manager</a></li>
<li><a href="/category">Category Manager</a></li>
<% } else {%>
<li><a href="/Register">Register</a></li>
<li><a href="/login">Login</a></li>
<% } %>