【问题标题】:Rails, Devise, CanCan or Declarative authorizationRails、Devise、CanCan 或声明式授权
【发布时间】:2013-07-18 23:27:46
【问题描述】:

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

谢谢


我会更好地解释我的问题。 到目前为止,我有能够创建项目的用户(有设计)。因此,如果 user1 创建项目 A 和项目 B,我希望他能够在项目 A 上为 user2 分配角色 admin,在项目 B 上为 user2 分配主持人角色。 我正在考虑创建一个 UserRoleProject 链接表,这是个好主意吗?或者如果没有,请帮助我一些指示。

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

任何用户都可以对其项目执行相同的操作。 还将有 n 个项目和 n 个用户以及 3 个访问级别(管理员、版主、访客)

谢谢

【问题讨论】:

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


    【解决方案1】:

    我曾经制作了一个包含多个角色的大型应用程序,每个角色都有其可用的操作集,我使用了 devise 和 cancan,它们的工作原理非常棒,它们集成得很好,并且都有很好的文档。

    对于其他问题,您可以这样做

    项目模型:

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

    团队模型:

    belongs_to :user
    belongs_to :project
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多