【需求】: 用户表:username,password,email,roleType(角色类型,0:管理员,1:文章编辑) 当管理员登录时,菜单上有一个“添加编辑”按钮,管理员可以添加编辑,而编辑登录时,没有这个按钮 这两种情况,界面展示上有所区别,管理员登录时多了一个"添加编辑"按钮。
像这种类型的需求,一般是如何处理的?有谁可以简单地讲解下,万分感谢!
9 回复
例如: res.render(“admin/index”); res.render(“admin/postList”); res.render(“admin/newPost”); res.render(“admin/editPost”); 按照你说的,是不每次在render的时候都传递一个标识roleType? 例如: res.render("admin/postList", { roleType:1 }); 这样做感觉很麻烦,有没有更好的解决方案?
@silianlinyi 像这种权限设置不能用JS处理,否则只要有人打开页面标签一样可以操作,要在模版引擎输出的时候根据权限控制是否输出按钮,还有一个就是在后台需要在对这个编辑文章的用户进行判断,查看他是否有权限修改,这样做最安全
我是把用户和角色分开来管理的,然后用角色判断操作,下面是使用时代码片段
var roles = user.getRoles(req.session.user);
if(roles.indexOf('admin') < 0) {
console.log('没有权限');
}
@silianlinyi 之前没用模板引擎时是用js处理,但是这样js代码奇多无比(可能只是我修业不精) 现在用模板就在render时多传一个或几个用于判断的标识值,虽然每个render都要加好想有点繁琐 但这样前端页面会清晰不少,js代码数量锐减