RBAC模型中 权限继承、权限回收的问题

最近在开发公司的RBAC组件时,遇上了个棘手的问题:
1 权限难以回收。

问题重现:当回收某个机构的权限时,机构内的用户还具备删除的权限。(用户的权限不能超出机构权限,是机构权限的子集)

问题需求:1.实现权限的继承
2.能对权限继承的粒度、范围加以控制,或者设计上考虑到将来需要控制继承的粒度。

目前我只考虑了静态权限的控制,也正在考虑动态资源的权限问题。 前段时间工作流组件基本完成了,现在有人提出了面向任务的RBAC,但是那会过于依赖工作流。

我希望RBAC 与 WorkFlow各自独立。

不知道大家在RBAC权限管理问题的设计上有什么建议没?

既然是RBAC,好像你没有引入角色这个概念。否则用户怎么能和权限直接耦合,进而无法回收权限?

这个问题确实有点复杂

而且我们公司目前的架构 是用的 ibatis,SQL要程序员来写
我发现在代码层次看不出对象、实体间的关系。因为都直接体现在SQL里。

我们是有角色的 但是因为角色类型并且机构也具有角色(则机构下所有人都具有此角色)等等。 我们一个用户的角色来源有 4-5个 很多,主要是和组织机构 耦合 在一起造成的。
现在就发现原有设计的问题暴露得越来越多,还有个问题就是我们的RBAC要保持向下兼容,所以一系列问题整合在一起使解决起来非常麻烦

还有个问题:
目前公司TBAC包的结构是:
API
----
controlInterface
----
controlImp
------
dao
----
daoImp
---
object

但是比如象 一个角色的继承关系,在JAVA代码上并没有体现,而是在SQL中,也就是数据库设计上。
因为我以前没有用过IBatis 用过hibernate

现在觉得用Ibatis 同时使用面向对象设计 很别扭。

希望有人指点下问题出在哪?