2013-07-19 67 views
0

我正在Rails上开发一款应用程序,并且我达到了我不知道什么是我的休闲场景的最佳解决方案。到目前为止,我可以创建用户,创建项目,关联用户(类似于FB),我可以邀请用户访问我的网站,现在我希望允许用户对他们创建的项目提供不同级别的访问权限,给其他用户(与github类似)。另外,在创建帐户后,用户将获得superadmin的角色,就像他们将能够管理他们的项目或将项目分配给他们的同事。那么这将是我在cancan和声明式授权之间的最佳选择。如果我将使用cancan或声明性授权,是否还需要一个将存储user_id,role_id和project_id的表?Rails,Devise,CanCan或Declarative授权

谢谢


我会更好地解释我的问题。 到目前为止,我有能够创建项目的用户(与devise)。因此,如果user1创建项目A并且项目BI希望他能够为项目A分配具有角色admin的user2,并且在项目B上具有主持人角色的user2。 我在创建UserRoleProject链接表时想到了,理念?或者,如果不是,请帮助我一些指针。

该操作将类似于User1从列表user2中选择,从另一个列表(user1创建的)中选择一个项目,然后选择user2在该项目上的角色。

任何用户将能够在他们的项目上执行相同的操作。 也将有N个项目和n个用户和3个访问级别(管理员,版主,来宾)

谢谢

回答

0

我曾经做了一个巨大的应用程序与角色的配发及每个角色有其套可用的动作,我用设计和康康,他们的工作就像一个魅力,他们很好地集成,都有很好的文档。

对于其他问题,你可以做这样的事情

项目模型:

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

组队模式:

belongs_to :user 
belongs_to :project