如何检查用户是不是在 Meteor 中具有特定角色
Posted
技术标签:
【中文标题】如何检查用户是不是在 Meteor 中具有特定角色【英文标题】:How to check if a user has a specific role in Meteor如何检查用户是否在 Meteor 中具有特定角色 【发布时间】:2016-05-02 03:55:38 【问题描述】:我想管理 Meteor 应用程序的用户,为此我需要知道他们当前的角色。我有一个页面设置,只有管理员用户可以访问,并且该页面订阅了 users 集合。
在此页面的模板中,我有以下内容:
#each user
<p>
<a href="/@username">username</a>
#if isInRole 'admin' Admin/if
</p>
/each
不幸的是,这给我留下了一个问题,即登录用户(即管理员)的角色与#if isInRole 'admin'
块中的比较。这会导致所有用户都拥有管理员身份(事实并非如此)。
如何检查each
块中显示的用户是否具有特定角色?
编辑说明:我正在使用 alanning/meteor-roles 包
数据库中有一个所有用户的列表,我想看看他们的管理员状态。
【问题讨论】:
【参考方案1】:对于以后遇到此问题的任何人,我都有以下解决方案。
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>
【讨论】:
【参考方案2】:您可以像这样创建自己的角色检查函数:
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 包才能使用它。
【讨论】:
我不是要检查登录用户是否是管理员,我有一个用户集合中所有用户的列表,我想看看他们是否是管理员。跨度> 没错,所以只需根据 isAdmin === true 呈现您的列表。 有没有办法将此函数放入我的模板助手中?因为我已经尝试实现它但它不起作用。 好的,1 秒,目前正在手机上回复。稍后会更新我的答案:-)以上是关于如何检查用户是不是在 Meteor 中具有特定角色的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户是不是具有特定角色 discord.js v12? [复制]
如何检查具有特定角色的成员是不是存在于 discord.js 的特定语音通道中