如何分配每个用户在不同条件下访问项目?

Posted

技术标签:

【中文标题】如何分配每个用户在不同条件下访问项目?【英文标题】:how can i assign each user to have access to the projects on different condition? 【发布时间】:2012-10-08 13:05:28 【问题描述】:

我已经设计了身份验证,我必须让特定用户只有查看该特定项目的权限,并为不同项目的同一用户创建和读取权限,类似地,其余用户应该具有项目权限。并且此权限应该是可编辑的,以便具有角色 admin 的用户必须编辑用户的权限。我该怎么做?

【问题讨论】:

【参考方案1】:

Ryan Bates 的CanCan gem 可以满足您的大部分要求。查看 CanCan 上的 RailsCast 剧集以了解快速介绍:http://railscasts.com/episodes/192-authorization-with-cancan

不确定它是否——现成的——提供以图形方式编辑权限,但我认为它可以通过 CanCan 中的可用功能来实现。

【讨论】:

我已经看到了,它只显示为用户分配角色。我已经分配了一个角色,但除了角色之外,我希望同一角色的用户对同一项目具有不同的权限。【参考方案2】:

我对 Rails 没有任何经验,但我想,您正在寻找一个对象级别权限,该权限可用于控制每个用户对单个对象的 CRUD 操作。

add_permission --> List of User
view_permission --> List of User
delete_permission --> List of User
update_permission --> List of User
add_excluded_user_permission --> List of User
view_excluded_user_permission --> List of User
delete_excluded_user_permission --> List of User
update_excluded_user_permission --> List of User

您可以将以下属性继承给您的类,这些属性主要是为特定操作定义的用户列表,然后,您可以考虑创建一个 API,用于检查用户是否具有这些权限。

【讨论】:

以上是关于如何分配每个用户在不同条件下访问项目?的主要内容,如果未能解决你的问题,请参考以下文章

Linux 下 svn 多个项目多用户分配

Django:获取子对象匹配条件的父对象

如何从两个表中获取公共项目 - Oracle

在 Azure DevOps 上,用户如何能够访问组织的每个项目?

如何配置多个用户以不同的权限访问多个资源?

如何使用域类字符串名称访问用户定义的 Grails 项目包名称