gpt4 book ai didi

ruby-on-rails - 一起使用设计/Cancan/Rolify

转载 作者:行者123 更新时间:2023-12-04 14:32:08 28 4
gpt4 key购买 nike

我正在尝试设置授权/身份验证系统,但我很困惑,所以我有几个问题:

  • 在很多教程中,人们建立了用户/角色 HABTM 关系。
    我知道这允许每个用户拥有多个角色,但是如果
    您希望每个用户只有一个角色,这有必要吗?如果我想为“事件”和“非事件”用户提供选项,应该
    是角色还是别的什么?
  • 在 Cancan wiki 中,它说如果您希望一个用户具有一个角色,您应该将其设为一个属性,然后使用“can
    :manage, :all if user.role == "admin"",但不是这样
    危险,因为每次“管理员”只是一个字符串?做这个
    事情?有什么更好的方法来处理这个问题?

  • 我已尽力通读所有涉及的文档,并从本教程开始

    http://railsapps.github.com/tutorial-rails-bootstrap-devise-cancan.html

    虽然我也读过
    http://starqle.com/articles/rails-3-authentication-and-authorization-with-devise-and-cancan-part-1/
    tonyamoyal.com/2010/09/29/rails-authentication-with-devise-and-cancan-part-2-restful-resources-for-administrators/

    我真的无法让它按照我想要的方式工作。我该怎么做呢?

    最佳答案

    1.您不需要多个角色或角色表

    CanCan 与您在应用程序中定义角色的方式无关。您可以在您的用户模型中轻松拥有一个角色字段。

    至于“活跃”和“非活跃”用户,您有两种选择。您可以拥有该状态的字段,或者您可以拥有“非事件”角色并考虑任何其他“事件”角色。这取决于您所说的“事件”是什么意思以及您在应用程序中如何使用该信息。

    2. 将用户的角色存储在字符串中没有任何问题。

    角色存储为字符串的事实并没有降低它的安全性。但是,您应该使用 attr_protected to prevent mass assignment用户角色。

    attr_protected :role

    这样,用户将无法更新他们自己的角色。

    关于ruby-on-rails - 一起使用设计/Cancan/Rolify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882741/

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