【问题标题】:Authorization of lit translation dashboard点亮翻译仪表板的授权
【发布时间】:2018-01-30 09:12:18
【问题描述】:

我正在做一个项目,我正在尝试使用 lit https://github.com/prograils/lit 来组织我的翻译文件。所以我已经安装了 gem 并完成了它的工作。问题是仪表板现在可供任何用户使用。

我们使用 devise 进行身份验证,使用 pundit 进行授权,但我找不到任何机制来根据用户角色限制对仪表板的访问。

任何帮助将不胜感激。

【问题讨论】:

  • 您的问题应该包括您到目前为止所做的努力。通常是一个代码 sn-p。
  • 我已经更新了我的答案,如果解决了您的问题,请告诉我。

标签: ruby-on-rails devise rails-i18n pundit


【解决方案1】:

仪表板取决于用户角色。 是您需要使用(在您的情况下)Pundit 来实现的目标。正如您所提到的,您已经在使用它,那么您应该能够执行以下操作:

class DashboardPolicy
  :
  :
  :

  def show?
    user.admin?
  end
end

在您的 user.rb 模型中,您将需要一个返回布尔值的方法,例如:

def admin?
  self.role == "admin"
end

更新(在无法访问控制器方法的情况下)

正如您提到的,您无权访问控制器方法,那么在这种情况下,您可能需要检查路由级别的约束。

我不会在此处添加代码 sn-ps,因为它已经在另一个问题上得到了很好的记录,您可以在此处查看答案:https://stackoverflow.com/a/29136866/2545197 并在此处阅读更多相关信息:http://guides.rubyonrails.org/routing.html#advanced-constraints

【讨论】:

  • 是的,这就是策略的工作方式,问题是仪表板是使用 gem 创建的,因此我们实际上无法访问控制器以使用策略进行授权。
  • 您使用哪个 gem 来创建仪表板?
  • gem叫做lit,url在原题中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多