2014-10-17 3 views
1

Я только что взял метеор снова, и некоторые вещи изменились с тех пор, как я в последний раз работал над своим приложением. У меня есть 1 вопрос в тот момент, в котором я хочу представить регистрационную форму, если пользователь не вошел в систему Раньше я использовал:.meteorjs, проверяющий вход в систему пользователя

Deps.autorun(function(){ 
if(Meteor.userId()==null){ 
    $(window).load(function(){ 
     $('#loginModal').modal('show'); 
    }); 
}}); 

Который работал отлично. Теперь, однако, я получаю сообщение об ошибке:

Meteor.userId может вызываться только в методе вызовов

Итак, как же я теперь достичь выше. Заранее спасибо Адам

+0

if (! Meteor.userId()) {// пользователь не подключается .. do sonmething} –

+0

В качестве альтернативы 'if (! Meteor.loggingIn() &&! Meteor.userId())' – mark

+0

Привет, проблема в том, что Meteor.userId() не может быть вызван здесь. Я знаю альтернативные способы проверки существования объектов :), но не уверен, как проверить в Deps.autorun. – tweakmag

ответ

1

Вот что я делаю: на стороне сервера с iron:router с alanning:roles вы можете сделать

this.route('EndUserPage', { 
     path: '/EndUserPage', 
     onBeforeAction: function (pause) { 
      if (!(Meteor.user())) { 
       console.log("Not logged in"); 
       this.setLayout('LoginForm'); 
       this.render('LoginForm'); 
      } else if (!(Roles.userIsInRole(Meteor.user(), 'admin'))) { 
       this.redirect("/AdminPage") 
      } else { 
       this.render(); 
      } 
     } }); 

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

Смежные вопросы