tl;博士
您必须向全局组分配角色,如下所示:
Roles.addUsersToRoles(id, 'admin', Roles.GLOBAL_GROUP);
详细信息:
当为用户分配了有组和无组的角色时,会发生此错误。正如文件所说:
注意:如果您为任何用户使用组,则应为所有用户使用组。这是由于roles包如何在数据库内部存储角色。
具体而言(从文件中):
Roles.addUsersToRoles(bobsUserId, ['manage-team','schedule-game'])
// internal representation - no groups
// user.roles = ['manage-team','schedule-game']
Roles.addUsersToRoles(joesUserId, ['manage-team','schedule-game'], 'manchester-united.com')
Roles.addUsersToRoles(joesUserId, ['player','goalie'], 'real-madrid.com')
// internal representation - groups
// NOTE: MongoDB uses periods to represent hierarchy so periods in group names
// are converted to underscores.
//
// user.roles = {
// 'manchester-united_com': ['manage-team','schedule-game'],
// 'real-madrid_com': ['player','goalie']
// }
将组分配给用户,将角色属性从数组转换为对象,以后的更改必须指定组。
要分配全局角色,必须指定全局组,如下所示:
角色。addUsersToRoles(id,“admin”,Roles.GLOBAL\u GROUP);