2016-01-25 18 views
5

Tôi muốn quản lý người dùng ứng dụng Meteor của mình và để làm điều đó tôi cần phải biết vai trò hiện tại của họ. Tôi có thiết lập trang chỉ có thể truy cập được đối với người dùng quản trị và trang đó được đăng ký với bộ sưu tập người dùng.Cách kiểm tra xem người dùng có vai trò cụ thể trong Meteor

Trong mẫu của tôi cho trang này, tôi có như sau:

{{#each user}} 
    <p> 
    <a href="/@{{username}}">{{username}}</a> 
    {{#if isInRole 'admin'}} Admin{{/if}} 
    </p> 
{{/each}} 

Thật không may này để lại cho tôi với một vấn đề mà các đăng nhập của người dùng (mà là một admin) vai trò là những gì được so sánh trong khối {{#if isInRole 'admin'}}. Điều này dẫn đến tất cả người dùng có trạng thái quản trị (không phải là trường hợp này).

Làm cách nào để kiểm tra xem người dùng được hiển thị từ khối each có vai trò cụ thể không?

Chỉnh sửa Lưu ý: Tôi đang sử dụng alanning/sao băng-vai trò gói

Có một danh sách của tất cả các người dùng trong cơ sở dữ liệu, và tôi muốn nhìn thấy tình trạng quản trị của họ.

Trả lời

3

Tôi có giải pháp sau cho bất kỳ ai gặp sự cố này trong tương lai.

JavaScript:

Template.registerHelper('isUserInRole', function(userId, role) { 
    return Roles.userIsInRole(userId, role); 
}); 

mẫu:

<p> 
    Roles: {{#if isUserInRole _id 'webmaster'}}Webmaster {{/if}} 
    {{#if isUserInRole _id 'admin'}}Admin {{/if}} 
</p> 
1

Bạn có thể tạo vai trò của riêng bạn kiểm tra các chức năng như vậy:

isAdmin = function(){ 
    var loggedInUser = Meteor.user(); 
    var result = false; 
    if(loggedInUser){ 
    if (Roles.userIsInRole(loggedInUser, ['Admin'])){ 
     result = true; 
    } 
    } 
    return result; 
}; 

Vì vậy, tiết kiệm này trong ./lib/roles.js ví dụ.

Bạn sẽ cần cài đặt gói alanning:roles để sử dụng gói này.

+0

Tôi không cố gắng để kiểm tra xem người dùng đăng nhập là một admin, tôi có một danh sách tất cả những người sử dụng trong bộ sưu tập người dùng và Tôi muốn xem họ có phải là quản trị viên hay không. –

+0

Chính xác, vì vậy chỉ cần hiển thị danh sách của bạn dựa trên isAdmin === true. –

+0

Có cách nào để đặt chức năng này vào trình trợ giúp mẫu của tôi không? Bởi vì tôi đã cố gắng thực hiện nó và nó không hoạt động. –

Các vấn đề liên quan