精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-01
qichunren 写道 引用 你怎么控制粒度精确到对资源的操作?
如A建立的POSTS,B能看不能删,C是版主,能看有能删 不知道你说的是不是: 你是说对于某个特定的用户创建的资源的权限控制吗?我做的这个不能达到这个要求. 如果只有让B能看不能删posts,让C能看又能删posts,那可以通过我的这个控制. 不知道对于你说的针对某个特定的资源(在我我先暂且理解为table中的一条记录)是如何控制每个用户对其的权限控制,有什么好的方法没有?? 我选用 RoleRequirement 这个插件,因为他支持eval一些自定义方法来进行细粒度的判断 class Admin::Listings < ApplicationController require_role "contractor" require_role "admin", :for => :destroy # don't allow contractors to destroy # leverage ruby to prevent contractors from updating listings they don't have access to. require_role "admin", :for => :update, [b]:unless => "current_user.authorized_for_listing?(params[:id]) "[/b] ... end " 经过修改,扩展出这种形式的调用: @user.can_{action}_{controller}? @user.can_{action}_{controller}?(@target) 以便在View能做更细致的布局 详细可参考以前写的测试例子: http://www.iteye.com/post/409317 |
|
返回顶楼 | |
发表时间:2008-08-01
这个基本没有实用性, 实现的权限管理要比这复杂得多.
做教科书还可以. |
|
返回顶楼 | |
发表时间:2008-08-01
年初的时候我用了一个插件,感觉跟楼主这个差不多
activerbac 自己也思考了一下 至于那个控制粒度问题 你怎么控制粒度精确到对资源的操作? 如A建立的POSTS,B能看不能删,C是版主,能看有能删 我觉得也可以实现 应该除destory方法外还有一个destory_by_self方法 一般用户有destory_by_self的权限,而版主有destory权限 或者destory方法只能删除自己的文章,另一个admin_destory可以随便删 就能做到自己的能够删,不能删别人,版主都能删文章的功能 本来逻辑上就可以看成两码事 |
|
返回顶楼 | |