2016-01-15 2 views
1

В Meteor У меня есть страница редактирования продукта. Я хочу, чтобы пользователь, создавший продукт, просмотрел страницу. В противном случае вы будете перенаправлены.Метеор: перенаправить, если пользователь не создал страницу

Есть ли способ сделать это перенаправление только железным маршрутизатором? Если нет, я возьму любое решение.

router.js

var OnBeforeActions; 
OnBeforeActions = { 
    ownerRequired: function(pause){ 
     if(!Meteor.userId()){ 
     Router.go('home'); 
     }else if(Meteor.userId()._id != ....SOMETHING?....){ 
     Router.go('home'); 
     }else{ 
     this.next(); 
     } 
    } 
}; 

Router.onBeforeAction(OnBeforeActions.ownerRequired, { 
    only: ['editProduct'] 
}); 


Router.route('/editProduct/:_id',{ 
    template: "editProduct", 
    name: "editProduct", 
    data: function(){ 
    return Products.findOne({_id: this.params._id}); 
    } 
}); 
+0

для вашего продукта, вы в настоящее время хранить идентификатор пользователя своего создателя, как свойство CreatedBy? – williamli

+0

да @williamli я делаю это –

ответ

0

Так что, если вы хотите знать, как решить эту проблему без железа маршрутизатора. Вы могли бы сделать что-то подобное. (Обратите внимание, я уже проверить с onBeforeAction, если пользователь вошел в систему.)

Template.editProduct.onCreated(function(){ 
    if(this.data.user === Meteor.userId()){ 
    }else{ 
     Router.go('home'); 
    } 
}); 
Смежные вопросы