Rails,Devise,CanCan或声明授权

时间:2013-07-19 15:40:22

标签: ruby-on-rails cancan declarative-authorization

我正在开发一个ruby on rails的应用程序,我达到了一个我不知道什么是我最好的解决方案。到目前为止,我能够创建用户,创建项目,关联用户(类似于FB),我能够邀请用户访问我的网站,现在我想允许用户对他们创建的项目进行不同级别的访问,给其他用户(类似于github)。用户在创建帐户后也将获得superadmin的角色,就像他们将能够管理他们的项目,或将项目分配给他们的员工一样。因此,这将是我在cancan和声明授权之间的最佳选择。如果我将使用cancan或声明式授权,我还需要一个存储user_id,role_id和project_id的表吗?

谢谢


我会更好地解释我的问题。 到目前为止,我有User(有设计),可以创建项目。因此,如果user1创建了项目A,而项目B我想要他,则能够在项目A上为user2分配角色admin,在项目B上为具有主持人角色的user2分配。 我正在考虑创建一个UserRoleProject链接表,这是一个好主意吗?如果没有,请帮我一些指示。

操作类似于,User1从列表user2中选择,从另一个列表中选择一个项目(该user1创建),并选择user2将对该项目具有的角色。

任何用户都可以对他们的项目执行相同的操作。 此外,还有n个项目和n个用户以及3个访问级别(管理员,主持人,访客)

谢谢

1 个答案:

答案 0 :(得分:0)

我曾经用一大堆角色制作了一个巨大的应用程序,每个角色都有可用的动作,我使用了设计和cancan,它们就像一个魅力,它们很好地集成,并且都有很好的文档。

对于另一个问题,你可以做这样的事情

项目模型:

has_one :user
has_many :collaborators, :through => :team

团队模型:

belongs_to :user
belongs_to :project