检查现有对象元素或:如何检查用户是否在多个组中的最小值之一

时间:2016-06-05 08:00:35

标签: javascript object meteor roles

是否可以让它更短/更容易?

我正在使用alanning:roles 群组。现在我需要检查用户是否已登录且用户是否在 admineditor

这就是我正在做的事情(因为isInRole正在检查角色,而不是组织)。

const loggedInUser = Meteor.user();
if (!loggedInUser || !loggedInUser.roles.hasOwnProperty('admin') || !loggedInUser.roles.hasOwnProperty('editor'))
    throw new Meteor.Error(403, "Access denied", "You don't have access");

1 个答案:

答案 0 :(得分:0)

也许是这样的:

if (!loggedInUser || _.intersection(loggedInUser.roles, ["admin", "editor"]).length > 0)

但我会使用Roles的内置功能进行角色管理:

if (Roles.getRolesForUser(Meteor.userId()).some(x => _.contains(["admin", "editor"], x)))