【发布时间】:2016-05-25 09:55:56
【问题描述】:
我面临一个关于如何根据从服务器获取的远程数据实施路由限制的问题。
假设我有以下配置文件:
angular.module('myApp')
.config(['$stateProvider', function($stateProvider) {
$stateProvider
.state('post', {
url: '/post/:post_id',
abstract: true,
[...]
})
.state('post.view', {
url: '/view'
[...]
})
.state('post.edit', {
url: '/edit'
[...]
})
}]);
我的申请要求是:
帖子有所有者(帖子的创建者),其域可以是公共的或私有的。
如果域是公开的,每个用户都可以看到帖子(进入状态
post.view),如果不是(域是私有的),只有所有者才能看到它。post.edit状态只有所有者才能访问。
要做到这一点,最好的方法是什么?
我正在考虑有一个解决承诺,它从服务器(帖子的域和通讯用户角色)获取数据,执行所需的检查并相应地返回(承诺已解决或被拒绝)。
但是,如果用户未获得授权,我将如何将用户重定向到正确的状态?例如,尝试访问post.edit 状态的普通用户应该被重定向到post.view 状态,如果帖子的域是公共的......但是如果帖子的域是私有的,则应该显示未经授权的访问页面。直接在解决方案上执行此操作是一个好方法吗?有哪些替代方案?
【问题讨论】:
标签: javascript angularjs angular-ui-router user-permissions