如何使第一个用户成为管理员的能力文件(cancan)

时间:2013-03-22 11:15:20

标签: ruby-on-rails

class Ability
include CanCan::Ability

def initialize(user)
user ||= User.new 
if user.admin == 1 #admin
    can :manage, :all
elsif 
  user.id != nil # registred users
  can :read, :all
  can :create, Post
  cannot :manage, User
else
   can :read, :all # guest user (not logged in)
   cannot :manage, User

end

这是我的能力档案。我希望它使第一个注册用户成为管理员,并授予他们编辑整个网页的所有权限,而用户只能管理帖子和访客,只允许用户阅读帖子。但是当我使用时     如果能?在我的代码中,管理员获得与普通用户相同的访问权限。我做错了什么?

1 个答案:

答案 0 :(得分:0)

在我的工作中,我必须做与公司相同的事情。

每个公司创建我检查是否是第一个,如果是,我将其设置为管理员,否则,普通用户。

此处使用if can?来定义菜单是隐藏还是可见。只有这样,如果用户键入URL,用户仍然会访问该页面,因此您需要添加load_and_authorize_resource,以便用户收到有关未获得许可的消息。

这就是你需要的吗? =)