エディターのみがアクセスできるエディター ページを備えた Meteor アプリを使用しています。私は Iron-Router を使用しており、Router.map は次のようになります。ただし、これは奇妙な方法で機能しているわけではありません。エディター ページへのリンクを提供するとすべて問題ありませんが、/editor の URL を入力しようとすると、ユーザー ロールが正しく設定されていても、常にホームにリダイレクトされます。
(私が除外したことの 1 つは、Meteor.userId() が Roles.userIsInRole が呼び出される前に設定されていない場合です。)
なぜこれになるのか誰にも分かりますか?
Router.map(function() {
...
this.route('editor', {
path: '/editor',
waitOn: function() {
//handle subscriptions
},
data: function() {
//handle data
},
before: function() {
if ( !Roles.userIsInRole(Meteor.userId(), 'editor') ) {
this.redirect('home');
}
}
});
...
});