【问题标题】:Authorize elasticsearch results with cancan使用 cancan 授权 elasticsearch 结果
【发布时间】:2012-07-22 13:57:08
【问题描述】:

您对如何使用cancan对elasticsearch结果(使用轮胎)进行授权有什么建议吗?

我的方法是让 cancan 加载和授权模型,并将所有授权的 id 传递给轮胎搜索,或者反过来。

你怎么看?

【问题讨论】:

    标签: ruby-on-rails-3 cancan elasticsearch tire


    【解决方案1】:

    正确的答案需要更多代码才能正确理解您的情况。

    但是,一般来说,作为一个例子:

    1. 您可以在文档中存储可以直接访问/操作文档的用户的用户 ID(例如,author_ids 属性)
    2. 您需要将用户 ID(基于 current_user.id 值)传递给 term/terms 过滤器。
    3. 或者,您可以使用布尔查询,但过滤器会更快、更有效。
    4. 您的结果已被过滤。

    请注意,elasticsearch 和 Tire 还有更多可能的方法,例如:

    1. 您使用elasticsearch 中的“filtered aliases” 功能,为每个用户设置一个“虚拟”索引,在elasticsearch 层自动过滤。
    2. 您将此索引名称注入到 Tyre 中的搜索中。

    【讨论】:

    • 我有多个切面,我正在对它们运行 geo_distance 过滤器...是否允许创建多个切面过滤器?我只看到一个选项...
    • filter DSL 方法只是 Ruby 哈希的一个小包装,所以 facet_filter 哈希键应该采用 elasticsearch 本身采用的任何方法; github.com/karmi/tire/blob/master/test/integration/… [如果不是这种情况,请通过示例提出问题]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多