2016-01-25 15 views
5

में उपयोगकर्ता की कोई विशिष्ट भूमिका है या नहीं, मैं अपने मेटियर ऐप के उपयोगकर्ताओं को प्रबंधित करना चाहता हूं और ऐसा करने के लिए मुझे अपनी वर्तमान भूमिकाओं को जानने की आवश्यकता होगी। मेरे पास एक पृष्ठ सेटअप है जो केवल व्यवस्थापक उपयोगकर्ताओं के लिए सुलभ है और वह पृष्ठ उपयोगकर्ता संग्रह के लिए सब्सक्राइब किया गया है।मेटर

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

दुर्भाग्य से यह मेरे लिए एक समस्या है, जहां में उपयोगकर्ता की भूमिका (जो एक व्यवस्थापक है) क्या {{#if isInRole 'admin'}} ब्लॉक में तुलना की जाती है है लॉग इन के साथ छोड़ देता है:

इस पृष्ठ के लिए मेरे टेम्पलेट में मैं निम्नलिखित है। इसका परिणाम उन सभी उपयोगकर्ताओं में होता है जिनमें व्यवस्थापक स्थिति होती है (जो मामला नहीं है)।

मैं कैसे जांचूं कि each ब्लॉक से प्रदर्शित कोई उपयोगकर्ता एक विशिष्ट भूमिका में है या नहीं?

संपादित करें नोट: मैं alanning/उल्का-भूमिकाओं पैकेज

उपयोग कर रहा हूँ वहाँ डेटाबेस में सभी उपयोगकर्ताओं की एक सूची है, और मैं उनकी व्यवस्थापकीय स्थिति देखना चाहते हैं।

उत्तर

3

मेरे पास भविष्य में इस समस्या में आने वाले किसी भी व्यक्ति के लिए निम्न समाधान है।

जावास्क्रिप्ट:

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

टेम्पलेट:

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

तुम इतनी जैसे कार्यों की जाँच अपनी खुद की भूमिका बना सकते हैं:

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

इसलिए उदाहरण के लिए ./lib/roles.js में इस को बचाने के।

आपको इसका उपयोग करने के लिए alanning:roles पैकेज स्थापित करने की आवश्यकता होगी।

+0

मैं अगर उपयोगकर्ता के प्रवेश का नियंत्रक है की जाँच की कोशिश नहीं कर रहा हूँ, मैं उन संग्रह में सभी उपयोगकर्ताओं की एक सूची है और मैं देखना चाहता हूं कि वे व्यवस्थापक हैं या नहीं। –

+0

निश्चित रूप से, इसलिए बस अपनी सूची को isAdmin === सत्य के आधार पर प्रस्तुत करें। –

+0

क्या इस फ़ंक्शन को मेरे टेम्पलेट सहायकों में रखने का कोई तरीका है? क्योंकि मैंने इसे लागू करने की कोशिश की है और यह काम नहीं कर रहा है। –

संबंधित मुद्दे