0

私は角度1.5+、角流星1.3.10、および警告:ロール を使用しています。それ?角度流星認可 - ページを読み込む前にユーザーの役割を確認してください

export default angular.module(name, [ 
angularMeteor, 
'angular-meteor.auth' 
]).component(name, { 
    templateUrl: `imports/ui/components/${name}/${name}.html`, 
    controllerAs: name, 
    controller: Admin 
}) 
    .config(config); 

function config($stateProvider) { 
    'ngInject'; 
    $stateProvider 
     .state('admin', { 
      url: '/admin', 
      template: '<admin></admin>', 
      resolve: { 
       user: ($q) => { 
        let user = Meteor.user(); 
        console.log(Meteor.user()); 
        console.log(Meteor.userId()); 
        // let user = $auth.currentUser; 
        var user1 = Meteor.users.findOne({ _id: Meteor.userId() }); 
        console.log(user); 
        console.log(user1); 
        if (Meteor.userId() === null) { 
         console.log("null user"); 
         return $q.reject(); 
        } else if (Roles.userIsInRole(user, ["admin"])) { 
         console.log("admin user"); 
         return $q.resolve(); 
        } 
        else { 
         console.log("reject"); 
         return $q.reject(); 
        } 
       } 


      } 
     }); 
} 

ここで私はuserInRoleをチェックするユーザーを取得することはできません...私は私が間違って何ここでの唯一のユーザーMeteor.userId() を得ることができますか?あまりにalanning役割を使用して

screen

答えて

1

イム、私は、問題を解決するあなたのために有用であることを願っています。

angular.module("app").run(function ($rootScope, $state, toastr) { 
 
    $rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) { 
 
    switch(error) { 
 
     case "AUTH_REQUIRED": 
 
     $state.go('anon.login'); 
 
     break; 
 
     case "FORBIDDEN": 
 
     //$state.go('root.home'); 
 
     break; 
 
     case "UNAUTHORIZED": 
 
     \t toastr.error("Acceso Denegado"); 
 
\t \t \t \t toastr.error("No tiene permiso para ver esta opción"); 
 
     break; 
 
     default: 
 
     $state.go('internal-client-error'); 
 
    } 
 
    }); 
 
    $rootScope.$on('$stateChangeStart', function(next, current) { 
 
    NProgress.set(0.2); 
 
    }); 
 
    $rootScope.$on('$stateChangeSuccess', function(next, current) { 
 
    NProgress.set(1.0); 
 
    }); 
 
}); 
 

 

 
.state('root.view', { 
 
    url: '/view/:param1/:param2/:param3', 
 
    templateUrl: 'client/view.html', 
 
    controller: 'ViewCtrl as vc', 
 
    resolve: { 
 
    "currentUser": ["$meteor", "toastr", function($meteor, toastr){ 
 
     return $meteor.requireValidUser(function(user) { 
 
     if(user.roles[0] == "rolUser1" || user.roles[0] == "rolUser2"){ 
 
      return true; 
 
     }else{ 
 
      return 'UNAUTHORIZED'; 
 
     } \t \t \t \t \t \t 
 
    }); 
 
    }] 
 
    } 
 
})

関連する問題