提交 b2f33ad7 编写于 作者: shuzheng5201314's avatar shuzheng5201314

完成角色授权

上级 baf802e5
......@@ -7,10 +7,8 @@ import com.zheng.common.base.BaseController;
import com.zheng.common.validator.LengthValidator;
import com.zheng.upms.common.constant.UpmsResult;
import com.zheng.upms.common.constant.UpmsResultConstant;
import com.zheng.upms.dao.model.UpmsPermission;
import com.zheng.upms.dao.model.UpmsPermissionExample;
import com.zheng.upms.dao.model.UpmsSystem;
import com.zheng.upms.dao.model.UpmsSystemExample;
import com.zheng.upms.dao.model.*;
import com.zheng.upms.rpc.api.UpmsApiService;
import com.zheng.upms.rpc.api.UpmsPermissionService;
import com.zheng.upms.rpc.api.UpmsSystemService;
import io.swagger.annotations.Api;
......@@ -45,6 +43,9 @@ public class UpmsPermissionController extends BaseController {
@Autowired
private UpmsSystemService upmsSystemService;
@Autowired
private UpmsApiService upmsApiService;
@ApiOperation(value = "权限首页")
@RequiresPermissions("upms:permission:read")
@RequestMapping(value = "/index", method = RequestMethod.GET)
......@@ -84,6 +85,59 @@ public class UpmsPermissionController extends BaseController {
return result;
}
@ApiOperation(value = "角色权限列表")
@RequiresPermissions("upms:permission:read")
@RequestMapping(value = "/role/{id}", method = RequestMethod.POST)
@ResponseBody
public Object role(@PathVariable("id") int id) {
// 所有正常系统
UpmsSystemExample upmsSystemExample = new UpmsSystemExample();
upmsSystemExample.createCriteria()
.andStatusEqualTo((byte) 1);
List<UpmsSystem> systems = upmsSystemService.selectByExample(upmsSystemExample);
// 所有正常权限
UpmsPermissionExample upmsPermissionExample = new UpmsPermissionExample();
upmsPermissionExample.createCriteria()
.andStatusEqualTo((byte) 1);
List<UpmsPermission> permissions = upmsPermissionService.selectByExample(upmsPermissionExample);
// 角色已有权限
List<UpmsRolePermission> rolePermissions = upmsApiService.selectUpmsRolePermisstionByUpmsRoleId(id);
// 返回结果集
Map result = new HashMap();
result.put("systems", systems);
result.put("permissions", permissions);
result.put("rolePermissions", rolePermissions);
return result;
}
@ApiOperation(value = "用户权限列表")
@RequiresPermissions("upms:permission:read")
@RequestMapping(value = "/user/{id}", method = RequestMethod.POST)
@ResponseBody
public Object user(@PathVariable("id") int id) {
// 所有正常系统
UpmsSystemExample upmsSystemExample = new UpmsSystemExample();
upmsSystemExample.createCriteria()
.andStatusEqualTo((byte) 1);
List<UpmsSystem> systems = upmsSystemService.selectByExample(upmsSystemExample);
// 所有正常权限
UpmsPermissionExample upmsPermissionExample = new UpmsPermissionExample();
upmsPermissionExample.createCriteria()
.andStatusEqualTo((byte) 1);
List<UpmsPermission> permissions = upmsPermissionService.selectByExample(upmsPermissionExample);
// 用户已有权限
List<UpmsUserPermission> rolePermissions = upmsApiService.selectUpmsUserPermissionByUpmsUserId(id);
// 用户已有角色
List<UpmsRole> roles = upmsApiService.selectUpmsRoleByUpmsUserId(id);
// 返回结果集
Map result = new HashMap();
result.put("systems", systems);
result.put("permissions", permissions);
result.put("rolePermissions", rolePermissions);
result.put("roles", roles);
return result;
}
@ApiOperation(value = "新增权限")
@RequiresPermissions("upms:permission:create")
@RequestMapping(value = "/create", method = RequestMethod.GET)
......
package com.zheng.upms.server.controller.manage;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baidu.unbiz.fluentvalidator.ComplexResult;
import com.baidu.unbiz.fluentvalidator.FluentValidator;
import com.baidu.unbiz.fluentvalidator.ResultCollectors;
......@@ -9,6 +11,9 @@ import com.zheng.upms.common.constant.UpmsResult;
import com.zheng.upms.common.constant.UpmsResultConstant;
import com.zheng.upms.dao.model.UpmsRole;
import com.zheng.upms.dao.model.UpmsRoleExample;
import com.zheng.upms.dao.model.UpmsRolePermission;
import com.zheng.upms.dao.model.UpmsRolePermissionExample;
import com.zheng.upms.rpc.api.UpmsRolePermissionService;
import com.zheng.upms.rpc.api.UpmsRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -21,6 +26,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -39,6 +46,9 @@ public class UpmsRoleController extends BaseController {
@Autowired
private UpmsRoleService upmsRoleService;
@Autowired
private UpmsRolePermissionService upmsRolePermissionService;
@ApiOperation(value = "角色首页")
@RequiresPermissions("upms:role:read")
@RequestMapping(value = "/index", method = RequestMethod.GET)
......@@ -55,6 +65,33 @@ public class UpmsRoleController extends BaseController {
return "/manage/role/permission";
}
@ApiOperation(value = "角色授权")
@RequiresPermissions("upms:role:permission")
@RequestMapping(value = "/permission/{id}", method = RequestMethod.POST)
@ResponseBody
public Object permission(@PathVariable("id") int id, HttpServletRequest request) {
JSONArray datas = JSONArray.parseArray(request.getParameter("datas"));
List<Integer> deleteIds = new ArrayList<>();
for (int i = 0; i < datas.size(); i ++) {
JSONObject json = datas.getJSONObject(i);
if (!json.getBoolean("checked")) {
deleteIds.add(json.getIntValue("id"));
} else {
// 加权限
UpmsRolePermission upmsRolePermission = new UpmsRolePermission();
upmsRolePermission.setRoleId(id);
upmsRolePermission.setPermissionId(json.getIntValue("id"));
upmsRolePermissionService.insertSelective(upmsRolePermission);
}
}
// 减权限
UpmsRolePermissionExample upmsRolePermissionExample = new UpmsRolePermissionExample();
upmsRolePermissionExample.createCriteria()
.andPermissionIdIn(deleteIds);
upmsRolePermissionService.deleteByExample(upmsRolePermissionExample);
return new UpmsResult(UpmsResultConstant.SUCCESS, datas.size());
}
@ApiOperation(value = "角色列表")
@RequiresPermissions("upms:role:read")
@RequestMapping(value = "/list", method = RequestMethod.GET)
......
......@@ -209,6 +209,7 @@ function deleteAction() {
}
// 授权
var permissionDialog;
var roleId;
function permissionAction() {
var rows = $table.bootstrapTable('getSelections');
if (rows.length != 1) {
......@@ -225,16 +226,19 @@ function permissionAction() {
}
});
} else {
roleId = rows[0].roleId;
permissionDialog = $.dialog({
animationSpeed: 300,
title: '角色授权',
content: 'url:${basePath}/manage/role/permission/' + rows[0].roleId,
content: 'url:${basePath}/manage/role/permission/' + roleId,
onContentReady: function () {
initMaterialInput();
initTree();
}
});
}
}
</script>
</body>
</html>
\ No newline at end of file
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="basePath" value="${pageContext.request.contextPath}"/>
<div id="permissionDialog" class="crudDialog">
<form id="permissionForm" method="post">
<div class="form-group">
<ul id="ztree" class="ztree"></ul>
</div>
<div class="form-group text-right dialog-buttons">
<a class="waves-effect waves-button" href="javascript:;" onclick="permissionSubmit();">保存</a>
<a class="waves-effect waves-button" href="javascript:;" onclick="permissionDialog.close();">取消</a>
</div>
</form>
</div>
<script>
var changeDatas = [];
var setting = {
check: {
enable: true,
// 勾选关联父,取消关联子
chkboxType: { "Y" : "p", "N" : "s" }
},
async: {
enable: true,
url: '${basePath}/manage/permission/role/' + roleId,
dataFilter: function(treeId, parentNode, datas) {
var nodes = [];
for (var i = 0; i < datas.permissions.length; i ++) {
var node = {};
node.id = datas.permissions[i].permissionId;
node.pId = datas.permissions[i].pid;
node.name = datas.permissions[i].name;
node.open = true;
// 是否已拥有
for (var j = 0; j < datas.rolePermissions.length; j ++) {
if (datas.permissions[i].permissionId == datas.rolePermissions[j].permissionId) {
node.checked = true;
}
}
nodes.push(node)
}
return nodes;
}
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: function() {
var zTree = $.fn.zTree.getZTreeObj("ztree")
var changeNodes = zTree.getChangeCheckedNodes();
for (var i = 0; i < changeNodes.length; i ++) {
var changeData = {};
changeData.id = changeNodes[i].id;
changeData.checked = changeNodes[i].checked;
changeDatas.push(changeData);
}
}
}
};
function initTree() {
$.fn.zTree.init($('#ztree'), setting);
}
function permissionSubmit() {
$.ajax({
type: 'post',
url: '${basePath}/manage/role/permission/' + roleId,
data: {datas: JSON.stringify(changeDatas), roleId: roleId},
success: function(result) {
if (result.code != 1) {
if (result.data instanceof Array) {
$.each(result.data, function(index, value) {
$.confirm({
theme: 'dark',
animation: 'rotateX',
closeAnimation: 'rotateX',
title: false,
content: value.errorMsg,
buttons: {
confirm: {
text: '确认',
btnClass: 'waves-effect waves-button waves-light'
}
}
});
});
} else {
$.confirm({
theme: 'dark',
animation: 'rotateX',
closeAnimation: 'rotateX',
title: false,
content: result.data.errorMsg,
buttons: {
confirm: {
text: '确认',
btnClass: 'waves-effect waves-button waves-light'
}
}
});
}
} else {
permissionDialog.close();
$table.bootstrapTable('refresh');
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.confirm({
theme: 'dark',
animation: 'rotateX',
closeAnimation: 'rotateX',
title: false,
content: textStatus,
buttons: {
confirm: {
text: '确认',
btnClass: 'waves-effect waves-button waves-light'
}
}
});
}
});
}
</script>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册