040904

来源:互联网 发布:软件商城下载 编辑:程序博客网 时间:2024/06/14 05:40

角色管理



原型图


增删改查


不需要校验


角色和权限之间的关系

粗粒度划分


新增/编辑角色

角色名称 

权限(复选) 行政管理 后续服务在线学习 纳税服务 我的空间

状态(单选) 有效 无效


行政管理,不想写死,怎么解决这个问题


定义常量MAP



cn.itcast.core.constant


Constant.java

//系统权限集合


public static String PRIVLEGE_XZGL=“xzgl”;

public static String PRIVLEGE_HQFW=“hqfw”;

public static String PRIVLEGE_ZXXX=“zxxx”;

public static String PRIVLEGE_NSFW=“nsfw”;

public static String PRIVLEGE_SPACE=“spaces”;


public static Map<String,String> PRIVILEGE_MAP;

static{

PRIVILEGE_MAP=new HahsMap<String,String>();

PRIVILEGE_MAP.put(PRIVLEGE_XZGL,”行政管理”);

……………….

}


定义到子系统的权限


写实体及映射文件,这不是个单模块的,一个角色可以有多个权限

管理员:在线学习 纳税服务 我的空间

一般用户:我的空间


我的空间可以被鹳狸猿和一般用户使用 

角色与权限的关系:多对多

一个角色可有多个权限,一个权限可以被多个角色使用



角色表:role

角色ID 角色管理 状态

1            管理员      1

2           一般用户   1


角色权限表:role_privilege

角色ID,权限code

1               nsfw

1               space

2               space



权限表:privilege

权限code  权限名称

nsfw            纳税服务

space        我的空间




role.entity


Role implements Serializable

private String roleId

private String name;

private String state;

private Set<RolePrivilege> rolePrivileges;


//角色状态值

public static String ROLE_STATE_VALID=“1”;

public static String ROLE_STATE_INVALID=“0”;


get+set

双构造



映射文件


Role.hbm.xml


class name table

id name roleId

column name=role_id 32 uuid.hex


name String name 20 nut-null


state String state 1 nut-null


<set name=“rolePrivileges” inverse=“true” lazy=“true”>

<key>

<column name=“role_id”>

</key>

<one-to-many class=“rolePrivilege”/>

</set>



RolePrivilege implements Serializable


private RolePrivilegeId id;


//联合主键类1.必需要实现Serializable借口 2.重写hashCode equals方法

RolePrivilegeId implemengs Serializable




private Role code;

private String roleId;


get set 构造方法 hashcode


set get 双构造



RolePrivilegeId.hbm.xml



class name table role_privilege



<composite-id name=“id” class=“”>

<key-many-to-one name=“role” lazy=“false” class=“”>

<column name=“role_id”>

</>

<key-property name=“code”type=“java.lang.String”>

<column name=“code”length=“20”>

</>

</>




原创粉丝点击