0

如何在应用程序中使用rails环境变量?管理员用户:Rails环境变量

我想用它们来限制访问页面上的某些元素。例如。用户看不到管理员所做的信息;但页面的其余部分是相同的。是否有这种用户权限实现的最佳做法?

回答

1

我不明白你为什么要使用它的环境变量。 如果您想限制对页面上某些元素(或/和操作)的访问权限,如果授权规则复杂,则可以使用cancancan(https://github.com/CanCanCommunity/cancancan)或权重(https://github.com/elabs/pundit)等宝石。 但如果你的规则很简单,你可以做水木清华这样的:

if current_user.admin? 
... admin stuff... 
end 
视图

+0

我的用户信息通过Shibboleth(单一登录)来传递,并通过环境变量传递给我的应用程序。我需要检查那些限制访问 – newtojs

+0

我认为你应该搜索/询问shibboleth特定的解决方案。你使用omniauth-shibboleth宝石还是那样的。 – lightalloy

+0

我有从Shibboleth设置进来的环境变量,所以我不认为这会有所帮助。我想弄清楚我是否可以使用环境变量来影响RoR中的视图 – newtojs

0

您可以使用一个环境变量是这样的:

<%= ENV["Your_Username"] %> 

这是什么会在你的database.yml一个例子。但是,就像上面的用户所说的那样,将逻辑放在视图中而不是使用环境变量会更好。

+0

我确实希望将逻辑放在视图中,但我仅限于使用环境变量或不太安全的HttpHeaders – newtojs