点亮翻译仪表板的授权

时间:2018-01-30 09:12:18

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

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

我们使用devise进行身份验证和pundit进行授权,但是我找不到任何限制访问仪表板的机制,具体取决于用户角色。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

信息中心取决于用户角色。是您需要实现的(在您的情况下)Pundit。如你所说,你已经在使用它,那么你应该可以做如下的事情:

class DashboardPolicy
  :
  :
  :

  def show?
    user.admin?
  end
end

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

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

更新(如果无法访问控制器方法)

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

我不会在这里添加代码片段,因为它已经在另一个问题上得到了很好的记录,你可以在这里查看答案:https://stackoverflow.com/a/29136866/2545197并在这里阅读更多相同内容:http://guides.rubyonrails.org/routing.html#advanced-constraints