无法使用“角色”包通过流星向用户添加角色

2023-12-20

我正在尝试使用 Atmosphere 上提供的“角色”包,但我无法让它与 Accounts.onCreateUser() 一起使用,我可以在 github 上获取示例。当我注册用户时,我想向他们添加角色,当我测试角色是否已分配时,它没有选择它。

这是我的代码

/服务器/用户.js

Accounts.onCreateUser(function(options, user){
  var role = ['admin'];
  Roles.addUsersToRoles(user, role);
  return user;
});

/客户端/page.js

Template.hello.events({
  'click input': function () {
    var loggedInUser = Meteor.user();
    if (Roles.userIsInRole(loggedInUser, ['admin'])) {
      console.log("Hi Admin!");
    }else{
      console.log("Please Log In");
    }
  }
});

如果您查看中使用的代码Roles包你会看到他们使用你传入的 user/userId 对用户的集合执行查询(here https://github.com/alanning/meteor-roles/blob/master/roles/roles_common.js,从第 ~623 行开始):

try {
  if (Meteor.isClient) {
    // On client, iterate over each user to fulfill Meteor's
    // 'one update per ID' policy
    _.each(users, function (user) {
      Meteor.users.update({_id: user}, update)
    })
  } else {
    // On the server we can use MongoDB's $in operator for
    // better performance
    Meteor.users.update(
      {_id: {$in: users}},
      update,
      {multi: true})
  }
}

Since onCreateUser在将用户对象插入集合之前调用(docs http://docs.meteor.com/#accounts_oncreateuser: 返回的文档直接插入到Meteor.users集合中), Roles当执行查询时找不到它。

为了解决这个问题,您必须等到用户被插入到集合中。如果你看一下Roles包中所有的示例都表明了这一点。喜欢here https://atmospherejs.com/package/roles,(第二个例子,添加了注释),以及许多其他例子:

// insert user and retrieve the id
id = Accounts.createUser({
  email: user.email,
  password: "apple1",
  profile: { name: user.name }
});

// now we can verify that the user was inserted and add permissions
if (user.roles.length > 0) {
  Roles.addUsersToRoles(id, user.roles);
}

希望这对您的问题有所帮助。所以基本上只需插入用户,然后添加权限即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用“角色”包通过流星向用户添加角色 的相关文章

  • 在 Node.js 中一次迭代 50 个项目的数组

    我是 node js 的新手 目前正在尝试编写数组迭代代码 我有一个包含 1 000 个项目的数组 由于服务器负载问题 我想一次迭代 50 个项目的块 我目前使用 forEach 循环 如下所示 我希望将其转换为上述块迭代 result i
  • Javascript拆分正则表达式问题

    你好 我正在尝试我认为在 Javascript 中相当简单的正则表达式 但给我带来了很多麻烦 我希望能够通过 javascript 通过 和 分割日期 var date 02 25 2010 var myregexp2 new RegExp
  • 如何使用 HTML 元素阻止 THREE.js 光线投射?

    我希望页面上的 HTML 元素阻止 THREE js 光线投射 我该如何执行此操作 我遇到的问题是 当用户单击打开的 DIV 元素时 光线投射会检索场景中的对象 它会检索 DIV 后面的对象 我不想在 DIV 打开时禁用光线投射 我纯粹希望
  • Highcharts 奇怪的分组行为

    我正在使用延迟加载 http www highcharts com stock demo lazy loading加载 OHLC 数据的方法 在服务器端 我使用 Python MySQL 并有 4 个包含 OHLC 数据的表 时间间隔为 5
  • 在 Nodejs/javascript 中的 Excel 中创建动态数量的列或标题

    我用过exceljsNodejs中用于将json数据导出到excel的模块 它工作正常 但必须在添加行之前预定义标题 列的名称 即列是固定的 添加行后 我无法动态添加列 我尝试了许多通过 npm 提供的模块 但它们都具有相同的功能 那么 有
  • 从 iframe 关闭父弹出窗口

    在domain1 com 上 我有一个链接 可以打开domain2 com 的弹出窗口 弹出窗口中有一个 iframe 也托管在 domain2 com 上 在 iframe 中 我试图关闭弹出窗口 我似乎对如何做到这一点感到困惑 在 if
  • flexslider 中的 GIF 滑块,如何仅在滑块上时开始 gif

    现在我有一个带有四个幻灯片的 Flexslider 第三个滑块是 gif 而不是像其他滑块一样是 jpg 我遇到的问题是 第三个 gif 滑块显然在到达页面时立即启动 而不是在您实际到达该滑块时启动 当点击前两个滑块时 gif 就快完成了
  • 在 Angular JS 中撤消重做

    我有一个大对象排列在 rootScope 中 比如说 gt 100 个对象 每个对象又具有对象 数组的层次结构 我想使用 deepWatching watch 整个 rootScope 即将 watch 的第三个参数设置为 TRUE 但这里
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单
  • CKEDITOR.styleSet.add - 'a' 元素的新样式

    由于某种原因如果我改变 p to a 它不再出现在样式列表中 有什么理由吗 CKEDITOR stylesSet add default name Wys wiersza 1 element p styles line height 18p
  • 使用 ECMA 脚本向节点(页面)添加新属性

    我需要在页面激活时向页面添加属性 我决定建立一个工作流程 在激活步骤之前执行相同的操作 我的自定义工作流程步骤 激活步骤之前的步骤 使用 ECMA 脚本来实现此目的 这是我到目前为止所拥有的 var workflowData granite
  • 我可以阻止history.popstate在初始页面加载时触发吗?

    我正在开发一个通过 AJAX 提供内容的网站 如果您单击菜单中的某个项目 内容 div 会更新为 get回应 没什么花哨的 我正在实施history pushState允许使用浏览器的后退 前进按钮进行导航 我有以下内容可以在历史导航上加载
  • 名称属性的 CSS 选择器?

    这可能是一个愚蠢的问题 但是属性的 CSS 选择器是什么 a 那是 名字 document body innerHTML myString anchor HTML String 这段 JavaScript 创建了一个 a 带有名称的元素 H
  • 为什么 html 中的 AngularJS 错误没有显示在控制台中?

    Here s a fiddle http jsfiddle net 6y7odxmj 3 用于说明 当 ng click 指令 例如 调用未在控制器的 scope 或其父级 上定义的函数时 它会默默地失败 当我尝试调试网页时 这种行为令人抓
  • 检查某个元素是否在没有 jQuery 的情况下“聚焦”

    我几乎确信我能在这里找到答案 但我没有成功 您如何检查事件调用时是否选择 聚焦 某个对象 我试过if document activeElement object HTMLBodyElement 但显然 activeElementonLoad
  • 删除数组中所有对象的属性

    我想删除bad数组中每个对象的属性 有没有比使用更好的方法for循环并从每个对象中删除它 var array bad something good something bad something good something for var
  • 如何让 Grunt.js 和 Meteor.js 协同工作?

    我想在我的 Meteor 应用程序中使用简单的复制和串联 但是当 Meteor 在服务器和客户端上运行所有 javascript 文件时 我遇到了问题 而我不希望它们在任何地方运行 它要么只是配置文件 例如Gruntfile js或我想以某
  • D3.js - 更改鼠标悬停时元素的不透明度 IF 条件 = false

    我正在制作一个带有过滤器的交互式 D3 js 图表 当用户单击选定的复选框时 该过滤器会显示点 此外 在鼠标悬停事件上 所选点旁边将出现一个弹出窗口 其中包含一些信息 由于图表上的点数量相对较多 因此我选择在取消选中相应复选框时使相关点变得
  • 如何运行 Mike Bostock 的 D3 示例?

    我一直在尝试经营迈克博斯托克透视地球仪 http bl ocks org mbostock 6747043例如 但是如果您尝试在本地重现它 则对其 json 文件的引用是不正确的 问题来自于这行代码 d3 json mbostock raw
  • Fancybox修改。如何修改 fancybox 以停止在每个画廊的最后一项? (画廊 1 画廊 2 等)[重复]

    这个问题在这里已经有答案了 我正在为我的照片库使用 fancybox 插件 我有多个包含更多项目 照片 的画廊 我想知道如何在点击每个画廊的最后一个项目时停止幻灯片放映 我的 fancybox js 没有被修改 谢谢 您需要添加该选项loo

随机推荐

  • 选择不具有特定类的元素的最后一个子元素

    我尝试选择没有特定类别的子元素的最后一个元素 我已经设置了一个js fiddle http jsfiddle net VATaj 2
  • 在 Woocommerce 3 中通过 ajax 提交并创建结帐订单

    我在结账表单中添加了一个按钮
  • 为什么引入新的 JSLint 错误“使用空格,而不是制表符”和“不安全字符”?

    我使用 JSLint 验证 JavaScript 已经有大约 2 年了 偶尔会有一些规则发生变化 一般来说 当 JSLint 引入新规则时 会有一个复选框可以在解析时忽略此规则 或者如果您选择不忽略它 则使您的代码符合它 然而 当我今天运行
  • android LiveData 或协程通道

    让应用程序使用 LiveData 和 ViewModel for UI 来观察存储库中的数据更新 它运行良好 现在有人提出 LiveData还没有被很好地采用 也许应该改用协程的通道 首先不确定关于LiveData的说法是否准确 我确信使用
  • Python远程过程调用(不带远程部分)

    我有一个不以 root 身份运行的 Python 服务器 它面向我正在开发的应用程序 然而 有一些应用程序功能需要访问 RAW 套接字 这意味着 root 权限 显然 我不想以 root 身份运行主服务器 因此我的解决方案是创建一个守护进程
  • SQL Server + 实体框架基础知识

    我的任务是用 C 创建一个程序来管理公司的员工 仅简要概述 每个员工的所有信息都存储在 MS SQL 数据库中 作为表示层 我必须使用 WPF 并作为与数据库的通信 LINQ to Entities 问题是 我设法自学了 WPF 但 SQL
  • 制作一个 24/7 运行并从命名管道读取的 Perl 守护进程

    我正在尝试使用 perl 制作一个日志分析器 分析器将在 AIX 服务器上的后台全天候 24 7 运行 并从系统日志将日志定向到的管道 从整个网络 读取 基本上 logs from network gt named pipe A gt pe
  • TDD:您为单元测试公开了哪些方法?

    TDD 有一个方面我从未完全理解 假设有人要求您实现一个简单的 Stack 对象 如果您的设计正确 您将得到一个非常最小且干净的 API 认为 push pop and isEmpty 除此之外 任何事情都会过度抑制需求 并让用户有太多的空
  • 导出和导入 IndexedDB 数据

    我正在制作一个供我自己使用的工具 需要一个简单的数据库 这似乎是学习 HTML5 IndexedDB API 的好机会 但重要的是我在任何时候都不会丢失数据 我想备份浏览器的配置文件目录就可以进行备份 但我也希望可能使用不同的计算机 因此导
  • 从github导入ADT Eclipse中的android项目

    我正在尝试将 android 项目从 github 导入到 ADT Eclipse 中 但当我克隆它时 它在存储库中找不到任何项目 该仓库显然是一个android应用程序项目 从源代码来看 但没有找到可以导入的项目 我的步骤如下 在 包资源
  • 在函数重载中将右值引用实现为参数

    我已经询问过有关代码审查和软件工程的问题 但该主题不适合该网站 因此我在这里询问希望这不是基于意见的 我是一名 老派 C 开发人员 我已经停留在 C 2003 但现在我已经阅读了一些有关现代 C 11 17 的书籍 并且正在重写我的一些库
  • Python3.10源码venv已经改变

    我在个人仓库上做了一些 python leetcode 在我将 Kubuntu 升级到 22 04 后 我意识到当前的 venv 不起作用 我想我需要重新创建 venv 安装了 python3 10 venv 但我无法获取并激活它 事实上
  • Apache Spark:map、flatMap、mapPartitions、mapPartitionsWithIndex 的比较

    Apache Spark map flatMap mapPartitions mapPartitionsWithIndex 的比较 欢迎提出建议 以提高我们的知识 地图 函数 它有什么作用 通过提供的函数传递 RDD 的每个元素 即功能 平
  • 优化运行时间:改变igraph中边的权重需要很长时间。有没有办法优化它?

    我正在从 osmar 对象构建的 igraph 中搜索一组边 并希望更改这些边的权重 由于我的图表很大 因此这项任务需要很长时间 由于我在循环中运行此函数 因此运行时间变得更大 有什么办法可以优化这个吗 这是代码 library osmar
  • 使用后如何从 GPU 清理和卸载 WebGL 画布上下文?

    如何清理 WebGL 上下文程序并从 GPU 和 dom element 卸载程序 缓冲区和所有内容 我想确保我们没有乱扔垃圾 另外 如果可能的话 重用画布会很好 而且我不知道是否会这样 2d or webgl语境 您可以丢失对 gl 上下
  • 在 C# 中从 Msi 中的自定义操作强制重新启动

    我们如何在 C 自定义操作中提示安装后重新启动计算机 我们使用 VS 2005 的安装项目进行安装 并且需要以编程方式决定提示重新启动 因此不会在每次安装时发生 只是在某些安装上发生 更新 我们首先正在寻找已经内置于 MSI 自定义操作系统
  • WPF 中的自定义附加事件

    我可能在这里用错了术语 但我想我正在尝试创建一个附加事件 在 Surface SDK 中 您可以执行以下操作
  • 谷歌浏览器扩展制作中的内容安全策略错误

    我正在制作一个 chrome 扩展 它将在新选项卡中打开页面上的所有链接 这是我的代码文件 清单 json name A browser action which changes its icon when clicked version
  • 如何禁用 NGINX 文件日志记录

    我对 Nginx 很陌生 注意到每当我在本地访问我的服务器时 它都会记录 我想知道 我需要创建哪些配置文件 以及将它们放在哪里 以及我必须在其中放入什么来禁用该行为 我试图防止喷出 我正在 aws 上运行我的应用程序 并收到许多格式为 17
  • 无法使用“角色”包通过流星向用户添加角色

    我正在尝试使用 Atmosphere 上提供的 角色 包 但我无法让它与 Accounts onCreateUser 一起使用 我可以在 github 上获取示例 当我注册用户时 我想向他们添加角色 当我测试角色是否已分配时 它没有选择它