Rails:如何使用 ActiveAdmin 访问 Devise 在控制器外部的当前用户

发布于 2024-11-26 04:53:14 字数 483 浏览 1 评论 0原文

我不想违反 MVC,我想实现以下目标:我正在使用 ActiveAdmin 滚动我自己的授权库。现在我想禁用当前用户无法访问的所有 ActiveAdmin 操作。看起来像这样:

visible_actions = [:index, :show, :new].reject{|action| !AdminUser.first.can_access?("admin/privileges", action.to_s) }

ActiveAdmin.register Privilege do
  actions *visible_actions
  ... <other stuff>
end

但我想访问当前用户,而不是 AdminUser.first 。当我的代码被解析时,Devise 的身份验证过程已经完成。所以 current_user 应该是已知的。但我没有找到一种以干净的方式访问 current_user 的方法。

有什么办法吗?提前谢谢。菲利克斯

I do not want to violate MVC, I'd like to achive the following: I'm rolling my own authorization lib with ActiveAdmin. Now I'd like to disable all ActiveAdmin actions that can not be accessed by the current user. That looks like so:

visible_actions = [:index, :show, :new].reject{|action| !AdminUser.first.can_access?("admin/privileges", action.to_s) }

ActiveAdmin.register Privilege do
  actions *visible_actions
  ... <other stuff>
end

But instead of AdminUser.first I'd like to access the current user. Devise's authentication process has already finished when my piece of code is parsed. So the current_user should be known already. But I do not find a way to access the current_user in a clean way.

Is there any way? Thx in advance. Felix

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文