如何使用 CanCan 授予用户权限

发布于 2024-11-20 00:11:26 字数 490 浏览 5 评论 0 原文

我正在使用 CanCan 来获取用户许可。我设置得很好并且有:

def initialize(user)
# Define abilities for the passed in user here. For example:
user ||= User.new # guest user (not logged in)

    if user.role? :admin
        can :manage, :all

    else        
        can :create, Post           
        can :read, Post
    end

    def role?(role)
        return !!self.roles.find_by_name(role.to_s.camelize)
    end

我的问题是如何真正给用户一个角色,这意味着现在所有用户都属于 else 类别...我如何使用户与 :admin 关联?

I'm using CanCan for user permission. I set it up well and have:

def initialize(user)
# Define abilities for the passed in user here. For example:
user ||= User.new # guest user (not logged in)

    if user.role? :admin
        can :manage, :all

    else        
        can :create, Post           
        can :read, Post
    end

    def role?(role)
        return !!self.roles.find_by_name(role.to_s.camelize)
    end

My question is how do I actually give a user a role, meaning right now all the users fall into the else category... how do i make a user associate with :admin?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜宝宝 2024-11-27 00:11:26

执行此操作的简单方法是向您的用户添加字符串 role 属性。

然后,在您的用户模型中:

def role?(arg)
  self.role.to_sym == arg.to_sym
end

并删除能力模型中的 role? 方法,您的示例不需要它。

The easy way to do this is to add a string role attribute to your user.

Then, in your user model:

def role?(arg)
  self.role.to_sym == arg.to_sym
end

And delete the role? method in the Ability model, you don't need it for your example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文