如何检查用户是否在Meteor中具有特定角色

Bar*_*yle 5 templates roles meteor

我想管理我的Meteor应用程序的用户,为了做到这一点,我需要知道他们当前的角色.我有一个只能由管理员用户访问的页面设置,并且该页面是订阅用户集合的.

在我的此页面模板中,我有以下内容:

{{#each user}}
  <p>
    <a href="/@{{username}}">{{username}}</a>
    {{#if isInRole 'admin'}} Admin{{/if}}
  </p>  
{{/each}}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这让我遇到了一个问题,即登录用户(管理员)角色是在{{#if isInRole 'admin'}}块中进行比较的.这导致所有用户都具有管理员状态(事实并非如此).

如何检查each块中显示的用户是否具有特定角色?

编辑注意:我正在使用alanning/meteor-roles包

有一个数据库中所有用户的列表,我想看到他们的管理员状态.

Bar*_*yle 5

对于将来遇到此问题的任何人,我都有以下解决方案。

JavaScript:

Template.registerHelper('isUserInRole', function(userId, role) {
  return Roles.userIsInRole(userId, role);
});
Run Code Online (Sandbox Code Playgroud)

模板:

<p>
  Roles: {{#if isUserInRole _id 'webmaster'}}Webmaster {{/if}}
  {{#if isUserInRole _id 'admin'}}Admin {{/if}}
</p>
Run Code Online (Sandbox Code Playgroud)