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?