【问题标题】:Grant roles to mongo users via rails通过 rails 向 mongo 用户授予角色
【发布时间】:2020-11-30 01:53:23
【问题描述】:

我正在尝试通过 rails 控制器为 mongo 用户分配角色。 我知道我们可以像here 中提到的那样为用户分配角色,但是我们需要更新整个用户。那么有没有办法直接通过rails控制器运行类似grantRole的查询呢?

【问题讨论】:

  • 您可以将调用放入 rails 控制器。
  • 这里我需要运行类似于 db.grantRolesToUsers() 的查询。你能用示例代码 sn-p 解释一下吗?。

标签: ruby mongodb mongoid


【解决方案1】:

db.grantRolesToUser 是一个shell helper。您可以通过在 shell 中键入它的名称而不是调用它来了解它是如何实现的:

MongoDB Enterprise ruby-driver-rs:PRIMARY> db.grantRolesToUser
function(username, roles, writeConcern) {
    var cmdObj = {
        grantRolesToUser: username,
        roles: roles,
        writeConcern: writeConcern ? writeConcern : _defaultWriteConcern
    };
    var res = this.runCommand(cmdObj);
    if (!res.ok) {
        throw _getErrorWithCode(res, res.errmsg);
    }
}

你可以看到它使用了runCommand

运行任意命令的Ruby机制是documented here

然后你会做这样的事情:

 client.database.command(grantRolesToUser: username, roles: ['foo'])

要获取客户端实例,请使用Foo.collection.client,其中Foo 是Mongoid 模型类。

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 2016-11-19
    • 2019-04-13
    • 1970-01-01
    • 2019-05-21
    • 2021-04-07
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多