我有一个“管理员”面板,所有角色的用户都可以使用它(目前是admin和user )。
主要问题是,我希望限制加载任何admin HTML视图(我将作为后端上的简单检查来完成此操作,如果未授权加载模板,则返回401 )。HTML中有很多东西我需要隐藏。
我的问题是,这意味着现在有两个视图为几个部分。
因此,当用户是管理员时,/settings会将一个完全不同的视图显示为/settings。
控制器实际上将被共享,因为控制器代码非常接近,但是HTML非常不同。
我目前正在使用angular-router,但我也签出了ui-router,我只是不知道如何构造。我花了很长时间研究UI路由器,虽然看起来很棒,但我不知道最好的方法。
我有大约10个路线/观点,需要属于每个角色,这将是不同的。
发布于 2015-11-16 06:09:21
如果发出一个全局变量,表示当前用户是admin:
<script type="text/javascript">window.isAdmin = true</script>然后在路由定义中检查该变量:
...
when('/setting', {
templateUrl: isAdmin ? 'templates/admin/setting.html' : 'templates/user/setting.html',
controller: 'SettingController'
})
...另一方面,让web服务器根据用户的角色为同一视图URL提供不同的视图。据我所知,你已经可以做到了,对吧?
app.get('/templates/setting.html', function(req, res) {
if (user.role === "admin") {
res.send(...);
} else {
res.send(...);
}
});https://stackoverflow.com/questions/33729112
复制相似问题