权限组件实现(续三)(Postgresql)
调用DBPermission判断权限的过程: 首先,程序会调用Permission的getDenyRule和 getAcceptRule来获取屏蔽或接受的规则. 然后逐条判断是否有权限. 现在DBPermission里没有DenyRule,AcceptRule也只有一个RuleImpl. RuleImpl的判断规则是:取得角色getPermissionProp属性中同权限相对应的属性,进行判断, 如果没有该属性则无权限.如果有属性则进行判断是否可以通过,通过判断Permission的PermissionItem(要求判断的权限项)和role相对应的属性是否相符来决定是否可以通过. 当然继承的时候可以以不同的方法设置Role的PermissionProp. 现在的DBRole的PermissionProp是从表tblpermissionrole里获得的. 举个例子: tblRole表: ID Name ……………… 1 财务 tblPermission表 ID Permission SubPermission Property………………… 1 Machine Read Department;Sex 2 Measure null null tblPermissionRole表 ID Role_id Permission properties 1 1 Machine:Read Department;2;Sex;2 2 2 Measure null 上面的表示中,角色1当department是2并且sex是2时有Machine:Read的权限, 而不管参数如何都有Measure的权限 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |