未验证 提交 43dba024 编写于 作者: E Evan 提交者: GitHub

Merge pull request #62 from Antabot/dev

chore: daily optimization
......@@ -42,7 +42,7 @@ public class ShiroConfiguration {
// filterChainDefinitionMap.put("/api/login", "anon");
// filterChainDefinitionMap.put("/api/logout", "anon");
// filterChainDefinitionMap.put("/**", "authc");
// 其实由于访问后台首先要调用菜单接口,该规则已失去作用
// 防前端瞎登录接口,其实由于访问后台首先要调用菜单接口,该规则已失效
filterChainDefinitionMap.put("/api/authentication", "authc");
// 对管理接口的访问启用自定义拦截(url 规则),即执行 URLPathMatchingFilter 中定义的过滤方法
......
package com.gm.wj.controller;
import com.gm.wj.pojo.AdminMenu;
import com.gm.wj.pojo.AdminRoleMenu;
import com.gm.wj.pojo.AdminUserRole;
import com.gm.wj.pojo.User;
import com.gm.wj.service.AdminMenuService;
import com.gm.wj.service.AdminRoleMenuService;
import com.gm.wj.service.AdminUserRoleService;
import com.gm.wj.service.UserService;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@RestController
public class MenuController {
@Autowired
UserService userService;
@Autowired
AdminUserRoleService adminUserRoleService;
@Autowired
AdminRoleMenuService adminRoleMenuService;
@Autowired
AdminMenuService adminMenuService;
@GetMapping("/api/menu")
public List<AdminMenu> menu() {
return respMenu(getMenuByCurrentUser());
}
public List<AdminMenu> getMenuByCurrentUser() {
String username = SecurityUtils.getSubject().getPrincipal().toString();
User user = userService.findByUserName(username);
List<AdminUserRole> userRoleList = adminUserRoleService.listAllByUid(user.getId());
List<AdminMenu> menus = new ArrayList<>();
for (AdminUserRole userRole : userRoleList) {
List<AdminRoleMenu> roleMenuList = adminRoleMenuService.listAllByRid(userRole.getRid());
for (AdminRoleMenu roleMenu : roleMenuList) {
menus.add(adminMenuService.getOneById(roleMenu.getMid()));
}
}
return menus;
}
public List<AdminMenu> respMenu(List<AdminMenu> menus) {
List<AdminMenu> menus = adminMenuService.getMenusByCurrentUser();
for (AdminMenu menu : menus) {
menu.setChildren(adminMenuService.getAllByParentId(menu.getId()));
}
......
......@@ -2,18 +2,40 @@ package com.gm.wj.service;
import com.gm.wj.dao.AdminMenuDAO;
import com.gm.wj.pojo.AdminMenu;
import com.gm.wj.pojo.AdminRoleMenu;
import com.gm.wj.pojo.AdminUserRole;
import com.gm.wj.pojo.User;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class AdminMenuService {
@Autowired
AdminMenuDAO adminMenuDAO;
@Autowired
UserService userService;
@Autowired
AdminUserRoleService adminUserRoleService;
@Autowired
AdminRoleMenuService adminRoleMenuService;
public AdminMenu getOneById(int id) {
return adminMenuDAO.findById(id);
}
public List<AdminMenu> getAllByParentId(int parentId) {return adminMenuDAO.findAllByParentId(parentId);}
public List<AdminMenu> getMenusByCurrentUser() {
String username = SecurityUtils.getSubject().getPrincipal().toString();
User user = userService.findByUserName(username);
List<AdminUserRole> userRoleList = adminUserRoleService.listAllByUid(user.getId());
List<AdminMenu> menus = new ArrayList<>();
for (AdminUserRole userRole : userRoleList) {
List<AdminRoleMenu> roleMenuList = adminRoleMenuService.findAllByRid(userRole.getRid());
for (AdminRoleMenu roleMenu : roleMenuList) {
menus.add(adminMenuDAO.findById(roleMenu.getMid()));
}
}
return menus;
}
}
......@@ -12,7 +12,7 @@ public class AdminRoleMenuService {
@Autowired
AdminRoleMenuDAO adminRoleMenuDAO;
public List<AdminRoleMenu> listAllByRid(int rid) {
public List<AdminRoleMenu> findAllByRid(int rid) {
return adminRoleMenuDAO.findAllByRid(rid);
}
}
......@@ -10,7 +10,7 @@ Target Server Type : MYSQL
Target Server Version : 80015
File Encoding : 65001
Date: 2019-12-02 19:28:22
Date: 2019-12-02 22:45:46
*/
SET FOREIGN_KEY_CHECKS=0;
......@@ -47,7 +47,7 @@ INSERT INTO `admin_menu` VALUES ('8', '/admin/content/book', 'BookManagement', '
-- ----------------------------
DROP TABLE IF EXISTS `admin_permission`;
CREATE TABLE `admin_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`desc_` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`url` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
......@@ -65,7 +65,7 @@ INSERT INTO `admin_permission` VALUES ('2', 'roles_management', '角色管理',
-- ----------------------------
DROP TABLE IF EXISTS `admin_role`;
CREATE TABLE `admin_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`name_zh` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`enabled` tinyint(1) DEFAULT NULL,
......@@ -111,9 +111,9 @@ INSERT INTO `admin_role_menu` VALUES ('12', '2', '8');
-- ----------------------------
DROP TABLE IF EXISTS `admin_role_permission`;
CREATE TABLE `admin_role_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`rid` bigint(20) DEFAULT NULL,
`pid` bigint(20) DEFAULT NULL,
`id` int(20) NOT NULL AUTO_INCREMENT,
`rid` int(20) DEFAULT NULL,
`pid` int(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_role_permission_role_1` (`rid`),
KEY `fk_role_permission_permission_1` (`pid`)
......@@ -130,9 +130,9 @@ INSERT INTO `admin_role_permission` VALUES ('2', '1', '2');
-- ----------------------------
DROP TABLE IF EXISTS `admin_user_role`;
CREATE TABLE `admin_user_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` bigint(20) DEFAULT NULL,
`rid` bigint(20) DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) DEFAULT NULL,
`rid` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_operator_role_operator_1` (`uid`),
KEY `fk_operator_role_role_1` (`rid`)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册