2016-01-25 13 views
5

Chcę zarządzać użytkownikami mojej aplikacji Meteor, a aby to zrobić, muszę znać ich aktualne role. Mam konfigurację strony, która jest dostępna tylko dla administratorów, a strona jest subskrybowana do kolekcji użytkowników.Jak sprawdzić, czy użytkownik ma określoną rolę w Meteoru

W moim szablonu dla tej strony mam następujące:

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

Niestety pozostawia mnie z problemem, gdzie zalogowanego użytkownika (który jest administratorem) rola jest tym, co w porównaniu do bloku {{#if isInRole 'admin'}}. Powoduje to, że wszyscy użytkownicy mają status administratora (co nie jest prawdą).

Jak sprawdzić, czy użytkownik wyświetlany z bloku each ma określoną rolę?

Edit Uwaga: Używam pakietu alanning/Meteor-role

Jest to lista wszystkich użytkowników w bazie danych, a chcę, aby zobaczyć swój status administratora.

Odpowiedz

3

Mam następujące rozwiązanie dla każdego, kto napotka na ten problem w przyszłości.

JavaScript:

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

Szablon:

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

Można utworzyć własną rolę sprawdzając funkcje tak:

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

więc zapisać to w ./lib/roles.js na przykład.

Aby można było z niego korzystać, należy zainstalować pakiet alanning:roles.

+0

Nie próbuję sprawdzić czy zalogowany użytkownik jest adminem, mam listę wszystkich użytkowników w zbiorze użytkowników i Chcę sprawdzić, czy są administratorami, czy nie. –

+0

Dokładnie, więc po prostu wyrenderuj listę na podstawie isAdmin === true. –

+0

Czy istnieje sposób na umieszczenie tej funkcji w szablonach pomocników? Ponieważ próbowałem go zaimplementować i nie działa. –

Powiązane problemy