gpt4 book ai didi

ruby-on-rails - Rails 中的模型级授权

转载 作者:行者123 更新时间:2023-12-01 05:46:18 25 4
gpt4 key购买 nike

我想在模型级别(而不是 Controller )上在我的 Rails 应用程序中实现授权,类似于对模型进行验证的方式。做这个的最好方式是什么?

如果它在模型本身中实现,主要问题是模型无权访问当前用户。我见过这样的解决方案:Thread.current[:user_id] = session[:user_id] ,但这似乎不是一个好主意。

我已经看到了一种不同的方法,其中创建了诸如 create、find 和 new 等方法的变体,并为当前用户接受了一个附加参数。

另一种方法是实现用户/角色类中的所有方法,例如 user.posts.createuser.readable_posts.find将被用来代替 Post.createPost.find .

建议使用以下哪种方法?有没有更好的方法来实现授权?是否有任何插件可以使这更容易?我需要一种可以很好地适应多种角色和模型的方法。

最佳答案

我建议你看看 declarative authorization .它适用于模型和 Controller 。

它执行您所要求的方式是在 applicationController 中有一个 before_filter 设置 Authorization.current_user = current_user其中 Authorization 是一个模块。

我认为这种方法是最好的方法,它可以保持模型干净,您不必记住在任何地方都包含用户,而是可以在模型回调函数中过滤它。

关于ruby-on-rails - Rails 中的模型级授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com