mashibing_架构师前置知识_OA系统_03 | Eloise's Paradise
0%

mashibing_架构师前置知识_OA系统_03

张一明架构师前置知识- Chapter 13

权限管理

RBAC

基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。

1562154499822

1562154499822

permission 权限

异步JSON提交表单

js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function add(){

var data = $("#add").serializeArray();

var formObject = {};
$.each(data,function(i,item){
formObject[item.name] = item.value;
});

$.ajax({
type: "POST",
url: "permissionAdd",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(formObject),
dataType: "json",
success: function (message) {
if (message > 0) {
alert("请求已提交!我们会尽快与您取得联系");
}
},
error: function (message) {
alert("提交数据失败!");
}
});
}

controller:

1
2
3
4
5
6
@RequestMapping("permissionAdd")
public String permissionAdd(Model model,@RequestBody(required = false) Map<String, String> map) {

System.out.println("map:" + map);
return "manager/permissionAdd";
}

复选框

1
2
3
4
<input type="checkbox" name="r"   th:checked="${p}==null?'':${p.r }   " value="true">查看  
<input type="checkbox" name="c" th:checked="${p}==null?'':${p.c } " value="true">添加
<input type="checkbox" name="d" th:checked="${p}==null?'':${p.d } " value="true">删除
<input type="checkbox" name="u" th:checked="${p}==null?'':${p.u} " value="true">修改

表设计

多对多

SELECT r.id, r.name,p.name,p.uri FROM role r inner join role_permission m on r.id = m.role_id inner join permission p on m.permission_id = p.id;

Inner Join 交集部分

LEFT OUTER JOIN

RIGHT OUTER JOIN

一方全部

踢下线 单用户登录

表单校验

实体注解:

controller

@Valid @RequestBody Permission p,BindingResult bindingResult

@NotBlank:判断字符创是否是null或者是空串(去掉首尾空格)。

@NotEmpty判断字符串是否为null会者是空串。

@Length判断字符的长度(最大或最小)

@Min判断数值最小值

@Max判断数值最大值

@Email判断邮箱是否合法

@Null 限制只能为null @NotNull 限制必须不为null @AssertFalse 限制必须为false @AssertTrue 限制必须为true @DecimalMax(value) 限制必须为一个不大于指定值的数字 @DecimalMin(value) 限制必须为一个不小于指定值的数字 @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction @Max(value) 限制必须为一个不大于指定值的数字 @Min(value) 限制必须为一个不小于指定值的数字 @Future 限制必须是一个将来的日期 @Past 限制必须是一个过去的日期 @Pattern(value) 限制必须符合指定的正则表达式 @Size(max,min) 限制字符长度必须在min到max之间 @NotEmpty 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) @NotBlank 验证注解的元素值不为空(不为null、去除首尾空格后长度不为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 @Email 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

文件上传

代码生成

MockMvc

本文为本人整理的听课笔记, 稍有修改.
自学之用, 不作任何商业用途.如有侵权, 请联系删除

原文引用于如下原创内容 :

Original

-------------本文结束感谢您的阅读-------------