1
加入我有以下连接表和(相关模型和表格)Rails的嵌套条件
- roles_users:USER_ID,ROLE_ID
- permissions_roles:ROLE_ID,permission_id,OBJECT_ID,OBJECT_TYPE
对于给定的用户,权限和对象,我想要查找用户是否通过其角色具有对象的关联权限。
任何有关查询的帮助将不胜感激。
加入我有以下连接表和(相关模型和表格)Rails的嵌套条件
对于给定的用户,权限和对象,我想要查找用户是否通过其角色具有对象的关联权限。
任何有关查询的帮助将不胜感激。
试试这个:
class User
def has_permission?(permission, object)
RoleUser.joins(:permission_roles).where(
:roles_users => {
:user_id => id
},
:permission_roles => {
:permission_id => permission,
:object_type => object.class.base_class.name,
:object_id => object
}
).exists?
end
end
现在你可以检查的权限如下:
current_user.has_permission?(@edit_permission, @blog_post)
给你有用户与目标,这个怎么样:
allowed = user.roles.joins(:permissions => :object).where(:object => { :id => object.id }).any?