Tôi đang nâng cấp lên [email protected]
và cố gắng tìm ra cách tốt nhất để chuyển hướng người dùng đến trạng thái khác nếu anh ấy không có quyền cần thiết.Chuyển hướng UI-Router 1.0 dựa trên vai trò người dùng
Đây là những gì tôi có:
.state('company_dashboard', {
url: '/dashboard',
templateUrl: 'dashboard.html',
controller: 'CompanyDashboardCtrl',
resolve: {
user: function(UserService) {
return UserService.getActiveUser();
},
company: function(UserService) {
return CompanyService.getActiveCompany();
},
permissions: function(CompanyService, user, company){
return CompanyService.getUserPermissions(company, user);
}
},
onEnter: function($state, permissions) {
if (permissions.canAccessDashboard === false)
return $state.go('company_landing_page');
}
})
Ví dụ trên hoạt động, nhưng nó ghi lại lỗi sau: TransitionRejection(type: 2, message: The transition has been superseded by a different transition, detail: Transition#1(''{} -> 'company_landing_page'{}))
mà làm cho tôi nghĩ rằng, cần có một cách tốt hơn.
Câu hỏi phụ, thực tiễn tốt là kiểm tra quyền trong thời gian resolve
?
UPDATE:
Thay đổi $state.go()
để $state.target()
đã giúp tôi thoát khỏi những lỗi giao diện điều khiển. This comment đã giúp. Mặc dù câu hỏi là viết tắt, cho dù tôi đang làm nó nó đúng nơi?
Tôi đã sử dụng để kiểm tra quyền trên mẫu được xây dựng bởi khung công tác phụ trợ mùa xuân hoặc một cái gì đó, tôi nghĩ rằng việc kiểm tra quyền trên giao diện người dùng không tốt vì mọi người đều có thể xem mã. –