【问题标题】:Admin user: Rails Environment variable管理员用户:Rails 环境变量
【发布时间】:2017-01-01 14:53:29
【问题描述】:

如何在应用程序中使用 rails 环境变量?

我正在尝试使用它们来限制对页面上某些元素的访问。例如。用户看不到管理员的信息;但页面的其余部分是相同的。此类用户权限实现是否有最佳实践?

【问题讨论】:

    标签: html ruby-on-rails ruby environment-variables user-permissions


    【解决方案1】:

    我不明白你为什么要使用环境变量。 如果您想限制对页面上某些元素(或/和操作)的访问,如果身份验证规则很复杂,您可以使用 cancancan (https://github.com/CanCanCommunity/cancancan) 或 pundit (https://github.com/elabs/pundit) 之类的 gem。 但是如果你的规则很简单,你可以这样做:

    if current_user.admin?
    ... admin stuff...
    end
    

    在视图中。

    【讨论】:

    • 我的用户信息来自 Shibboleth(单点登录),并通过环境变量传递给我的应用程序。我需要检查那些以限制访问
    • 我认为您应该搜索/询问特定于 shibboleth 的解决方案。你使用omniauth-shibboleth gem还是那样的东西。
    • 我有来自 Shibboleth 设置的环境变量,所以我认为这不会有帮助。我想弄清楚是否可以使用环境变量来影响 RoR 中的视图
    【解决方案2】:

    你可以像这样使用环境变量:

    <%= ENV["Your_Username"] %>
    

    这是您的 database.yml 中的示例。但是,就像上面用户所说的那样,最好将逻辑放在您的视图中,而不是使用环境变量。

    【讨论】:

    • 我确实想将逻辑放在视图中,但我只能使用环境变量或不太安全的 HttpHeaders
    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2018-09-06
    • 2015-07-09
    • 1970-01-01
    相关资源
    最近更新 更多