2016-01-22 3 views
1

Я ищу решения с управлением правами пользователей и доступом к просмотру содержимого приложения.Управление доступом для пользователей в новом веб-приложении в Meteor

Моя цель:

  • просматривать разные страницы для разных групп зарегистрированных пользователей
  • Мне нужно управлять этой группы с помощью учетной записи администратора
  • затем веб-приложение будет проверять права пользователей и подготовить специальную страницу для каждая из групп

Я провожу некоторое время, но не могу найти хорошие модули для этого решения. И решите создать мою собственную панель администратора и коллекцию, которая будет содержать права пользователей.

На данный момент у меня есть проблемы с быстрой формы, она не показывает мне половину значений:

Meteor.publish('allUsers',function(){ 
    return Meteor.users.find({}) 
}); 
Meteor.publish('userAcCardS',function(){ 
    return RoleCard.find({userId: this.userId}); 
}); 

<template name="singleUser"> 
    <h1 class="page-title"> user - {{_id}} <i class="fa fa-pencil"></i></h1> 
    <h3> 
    -{{RCList._id}}-{{RCList.name}}-{{RCList.isAdmin}}- 

    {{#if RCList}} 
    {{> quickForm id="update_card" collection="RoleCard" doc=this type="update"}} 
    {{else}} 
    noth {{> quickForm id="new_card" collection="RoleCard" type="insert"}} 
    {{/if}} 
    </h3> 
</template> 

Template.singleUser.onCreated(function() { 
    var self = this; 
    self.autorun(function() { 
    self.subscribe('userAcCardS'); 
    }); 
}); 

Template.singleUser.helpers({ 
    userEmail: function(){ 
    return this.emails\[0\].address; 
    }, 
    RCList: function(){ 
     return RoleCard.findOne({userId: this._id}); 
    } 
}); 

Но я вижу только это:

User Management Meteor

Так что случилось ? И, может быть, вы можете дать мне совет использовать другое решение, такое как пакет Meteor, если вы это знаете?

Или, может быть, вы можете сказать мне, как визуализировать autoform на основе «RCList», который может предоставить изменения в коллекции RoleCard, если это возможно? Я я совершенно новый в метеор и js ...

ответ

0

Самый популярный пакет ролей - пакет alanning:roles. Он позволяет вам контролировать роли пользователей и ограничивать доступ на основе этих ролей. Используйте эту команду, чтобы установить его для вашего проекта:

метеора добавить alanning: роли

Вот пример из его использования для ограничения опубликования данных:

Meteor.publish('secrets', function (group) { 
    if (Roles.userIsInRole(this.userId, ['view-secrets','admin'], group)) { 
     return Meteor.secrets.find({group: group}); 
    } else { 
     // user not authorized. do not publish secrets 
     this.stop(); 
     return; 
    } 
}); 

Примера ограничения, что видно на клиент:

<template name="header"> 
    ... regular header stuff 
    {{#if isInRole 'admin'}} 
     {{> admin_nav}} 
    {{/if}} 
    {{#if isInRole 'admin,editor'}} 
     {{> editor_stuff}} 
    {{/if}} 
</template> 
Смежные вопросы