一个关于权限集的管理

现在有这么一个需求,有一大堆的权限,可以按照机构,应用,特殊权限自由添加、管理;系统中给个人用户可以按照所属机构,包含应用,单独赋予权限。根据不同的机构来分配权限给他,机构也是一棵树结构,但是机构的下级机构不能包含父机构的所有权限。除了机构,还有应用需要管理分配权限,一个用户属于一个机构,包含多个应用,并且还可以赋于单独的权限。::
|-基础权限集-|-权限1
|-权限N
|-机构1-----|-权限1
|-权限N
|-机构2-|---子机构1-|-权限1
|-权限N
|---子机构N-|-权限1
|-权限N
|...
|-机构n------|-权限1
|-权限N
|-应用1------|-权限1
|-权限N
|-...
|-应用n------|-权限1
|-权限N
|-特殊权限---|-权限1
|-权限N
大概的意思就是会有一颗很大的树来管理权限。但是这样的话,操作会很复杂,对于特殊的权限,平时操作比较平凡,这样就会增加定义的操作不便性,而且如果用户不能全部拥有机构中的全部权限,那么简单算法来排除,也会感觉很费力。不知道大家有没有好的方法来管理,设计一个?谢谢大家帮忙想想。

机构 与 权限关系表:机构拥有与之关联的权限
应用 与 权限关系表:应用拥有与之关联的权限
特殊权限 与 权限关系表:特殊权限拥有与之关联的权限

用户 与 权限关系表:用户拥有与之关联的权限
用户 与 机构关系表:用户拥有直属机构的所有权限
用户 与 应用关系表:用户拥有与之关联应用的所有权限
用户 与 特殊权限关系表:用户拥有与之关联的特殊权限

可以考虑用Ralasafe

Ralasafe 是用Java编写的开源(MIT协议)访问控制中间件。它能够轻松处理登录控制、URL权限控制和(业务级)数据级权限管理,实现权限与业务分离。Ralasafe是一款开箱即用的中间件,XML配置和JAVA编程工作量非常少,基本都使用图形化操作方式。非常简单易用,开发经验不丰富,也能很快学会。

http://www.ralasafe.org/zh-hans/

增加以上表后,
至于机构的下级机构不能包含父机构的所有权限:
可以在管理权限的页面中进行操作

不晓得你想用什么语言开发,这里有个基于.net开发的[url=
http://www.upms.com.cn/index.html]权限管理系系统[/url]