数据库设计:
用户User ManyToOne 组织Org
组织Org ManyToMany 角色Role
OrgRole组织下的角色 ManyToMany 用户User
类Bean OneToMany 属性Property
角色Role ManyToMany 功能Permission(url)
功能Permission OneToMany 表现performance (进入同一个URL看到不同的表现形式)
角色Role ManyToMany 表现performance
表现performance OneToMany 表现属性PerformanceProperty(用于不同角色需要看到不同的字段)
表现performance OneToMany 引用Quote (一个表现下引用其
外键相关的表现,如:一个Org下带一个User的List)
功能Permission OneToMany 数据过滤Filter (控制数据可见性,控制可编辑的数据条件、可增加的数据基础条件)
数据过滤Filter OneToMany 数据过滤属性FilterProperty(根据不同的字段以及字段对应的值做内部级的数据过滤)
角色Role ManyToMany 数据过滤Filter
类Bean OneToMany 状态BeanSTATE
表现performance OneToOne 状态BeanSTATE (同一个类在不同状态下所得的字段editshowhide不同,用于流程控制)
权限过滤器:
loginUser -> MyRoles
loginUrl -> the Permission
MyRole contain Permission? get the Max Role,get role's org
the role contain the permission's Performance & Filter? get performance & filter
功能:
has performance:
we have bean(是哪个类)\role(以什么权限)\org(以哪个组织的名义)\performance(显示、编辑或者隐藏什么字段)\filter(数据过滤条件)\dowhat(dowhat set rules in url,是列表、增加、详细、修改、删除、选择、树?)
页面中的数据是以什么方式存在、用什么控件、控件引用了什么url、是否必须、可填入的形式等都在此定义
url都是按照一定的规则来定义的,减少配置量。
一个功能对应一个url,但是可以有多个不同参数来做不同的事,这些事对应的角色是一致的,可以减少配置。
- class='magplus' title='点击查看原始大小图片' />
- 大小: 19.8 KB
- 大小: 40.3 KB
- 大小: 37.6 KB