2016-01-25 22 views
5

Meteor uygulamamın kullanıcılarını yönetmek istiyorum ve bunu yapmak için geçerli rollerini bilmem gerek. Sadece yönetici kullanıcılar tarafından erişilebilen ve bu sayfanın kullanıcı koleksiyonuna abone olduğu bir sayfa kurulumum var.Bir kullanıcının Meteor içinde belirli bir rolü olup olmadığını nasıl kontrol edilir

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

Ne yazık ki bu rolü (yönetici konumunda) kullanıcının {{#if isInRole 'admin'}} blokta karşılaştırılır ne kaydedilir bir sorun ile beni bırakır: Bu sayfa için benim şablonunda

ben şu var. Bu, yönetici durumuna sahip olan tüm kullanıcılar ile sonuçlanır (durum böyle değildir).

each satırından görüntülenen bir kullanıcının belirli bir rolde olup olmadığını nasıl kontrol ederim?

Düzenleme Not: Ben veritabanındaki tüm kullanıcıların bir listesi vardır alanning/meteor roller paketi

kullanıyorum, ve ben onların yönetici durumunu görmek istiyorum.

cevap

3

Gelecekte bu konuyla ilgilenen herkes için aşağıdaki özüm var.

JavaScript:

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

Şablon: Ben giriş yapan kullanıcılar bir yönetici olup olmadığını kontrol etmeye çalışmıyorum

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

Öyle gibi işlevleri kontrol kendi rolünü oluşturabilirsiniz:

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

Yani örneğin ./lib/roles.js bu kaydedin.

Kullanmak için alanning:roles paketini yüklemeniz gerekir.

+0

, Kullanıcıların koleksiyonundaki tüm kullanıcıların bir listesi var ve Yöneticilerin olup olmadığını görmek istiyorum. –

+0

Kesinlikle, sadece listenizi isAdmin === true. –

+0

Bu işlevi şablon yardımcılarıma yerleştirmenin bir yolu var mı? Çünkü onu uygulamaya çalıştım ve işe yaramıyor. –

İlgili konular