Commit d8970c78 zshaohui

增加用户权限管理

1 个父辈 652927be
......@@ -89,7 +89,7 @@ public class DataInitManager {
operator = roleManager.save(operator);
log.info("创建默认角色:" + operator.toString());
admin = new User(userName, "admin@qq.com", "zh-CN", role.getId(), "$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa", true, true, new Date(), groupIds, "");
admin = new User(userName, "admin@qq.com", "zh-CN", role.getId(), "$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa", true, true, new Date(), groupIds, "",new ArrayList<>(),new ArrayList<>());
admin = userManager.save(admin);
log.info("创建默认用户:" + admin.toString());
......
......@@ -107,7 +107,7 @@ public class UserCodeUtil {
String langu="";
String roleId="";
User user=new User(username,email,langu,roleId,"",true
,false,new Date(),new HashSet<>(),"");
,false,new Date(),new HashSet<>(),"",new ArrayList<>(),new ArrayList<>());
user.setId(id);
user.setCreateDate(createData);
list.add(user);
......
......@@ -2,6 +2,8 @@ package com.neotel.smfcore.custom.micron20031.login.api.bean;
import lombok.Data;
import java.util.List;
/**
* {
* "aud": "4b3a662e-df9a-4215-8c11-19329d82cecb",
......@@ -68,5 +70,7 @@ public class MicronUserInfo {
private String authmethod;
private String ver;
private List<String> role;
}
package com.neotel.smfcore.custom.micron20031.login.config;
import com.google.common.collect.Maps;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Component
public class UserRoleMenuConfig {
/**
* key为镁光返回的role,vaule为菜单path
*/
static Map<String, List<String>> roleMenuMap = Maps.newConcurrentMap();
@PostConstruct
void initRoleMenuMap() {
roleMenuMap.put("Order", getOrderMenu());
roleMenuMap.put("Deposit", getDepositMenu());
roleMenuMap.put("Withdrawal", getWithdrawalMenu());
roleMenuMap.put("Return", getReturnMenu());
roleMenuMap.put("Remove", getRemoveMenu());
roleMenuMap.put("Maintenance", getMaintenanceMenu());
roleMenuMap.put("Configure", getConfigureMenu());
roleMenuMap.put("Transaction History", getTransactionHistoryMenu());
}
public static List<String> getMenuByRole(String role){
return roleMenuMap.get(role);
}
private List<String> getOrderMenu() {
return Arrays.asList("orderReport");
}
private List<String> getDepositMenu() {
return Arrays.asList("spKanban");
}
private List<String> getWithdrawalMenu() {
return Arrays.asList("spKanban");
}
private List<String> getReturnMenu() {
return Arrays.asList("spKanban");
}
private List<String> getRemoveMenu() {
return Arrays.asList("spRemoval","order","searchOut","singleOuput");
}
private List<String> getMaintenanceMenu() {
return Arrays.asList("selfAuditManagerment", "selfAudit", "selfAuditLog");
}
private List<String> getConfigureMenu() {
return Arrays.asList("materiel", "componentParts", "system", "bunker", "storagePos", "menu", "sysSetting", "translation", "barcodes", "barcode", "barcodeSetting", "userManager", "peoples", "role");
}
private List<String> getTransactionHistoryMenu(){
return Arrays.asList("log","taskLog");
}
}
......@@ -6,6 +6,7 @@ import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.custom.micron20031.login.api.MicronLoginApi;
import com.neotel.smfcore.custom.micron20031.login.api.bean.MicronUserInfo;
import com.neotel.smfcore.custom.micron20031.login.config.MicronLoginConfig;
import com.neotel.smfcore.custom.micron20031.login.config.UserRoleMenuConfig;
import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.bean.LoginProperties;
......@@ -124,10 +125,31 @@ public class MicronLoginController {
//123456..123
String pwd = passwordEncoder.encode("123456..123");
Role role = roleManager.findOne(new Query(Criteria.where("name").is("admin")));
user = new User(userInfo.getWinaccountname(), userInfo.getEmail(), "zh-CN", role.getId(), pwd, true, true, new Date(), new HashSet<>(), "");
user = userManager.save(user);
user = new User(userInfo.getWinaccountname(), userInfo.getEmail(), "zh-CN", role.getId(), pwd, true, true, new Date(), new HashSet<>(), "",new ArrayList<>(),new ArrayList<>());
}
//重新设置用户展示菜单,替换掉上一次
user.setShowButtonList(new ArrayList<>());
user.setShowList(new ArrayList<>());
//设置用户的菜单信息
List<String> roleList = userInfo.getRole();
if (roleList != null && !roleList.isEmpty()) {
List<String> showList = new ArrayList<>();
for (String role : roleList) {
List<String> menuPathList = UserRoleMenuConfig.getMenuByRole(role);
if (menuPathList != null && !menuPathList.isEmpty()) {
showList.addAll(menuPathList);
}
}
//设置用户菜单权限
user.setShowList(showList);
//设置用户按钮权限
user.setShowButtonList(roleList);
}
user = userManager.save(user);
final String password = "123456..123";
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(user.getUsername(), password);
......
......@@ -31,7 +31,9 @@ import com.neotel.smfcore.security.rest.bean.mapstruct.MenuMapper;
import com.neotel.smfcore.security.rest.bean.query.MenuQueryCondition;
import com.neotel.smfcore.security.rest.bean.vo.MenuVo;
import com.neotel.smfcore.security.service.manager.IMenuManager;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.Menu;
import com.neotel.smfcore.security.service.po.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......@@ -72,6 +74,9 @@ public class MenuController {
@Autowired
MenuInit menuInit;
@Autowired
IUserManager userManager;
@RequestMapping(value = "/show")
@AnonymousAccess
public ResponseEntity<Object> show(@RequestParam String menuPath) {
......@@ -100,6 +105,17 @@ public class MenuController {
} catch (Exception ex) {
log.error("获取当前用户出错:" + ex);
}
User user = userManager.get(userId);
List<String> showList = user.getShowList();
if (showList != null && !showList.isEmpty()){
List<Menu> menuList = menuManager.findByQuery(new Query(Criteria.where("path").in(showList)));
menuList = menuList.stream().sorted(Comparator.comparing(Menu::getMenuSort)).collect(Collectors.toList());
List<Menu> buildMenuList=menuManager.buildTree(menuList);
List<MenuVo> vos = menuManager.buildMenus(buildMenuList,servletRequest.getLocale());
return new ResponseEntity<>(vos, HttpStatus.OK);
}
List<Menu> menuList = menuManager.findByUserId(userId);
List<Menu> buildMenuList=menuManager.buildTree(menuList);
// List<MenuDto> menuDtoList = menuMapper.toDto(menuManager.buildTree(menuList));
......
......@@ -112,7 +112,7 @@ public class MenuManagerImpl implements IMenuManager {
List<Menu> trees = new ArrayList<>();
Set<String> ids = new HashSet<>();
for (Menu menu : menus) {
if (menu.getPid() == null) {
if (StringUtils.isBlank(menu.getPid())) {
trees.add(menu);
}
for (Menu it : menus) {
......
......@@ -21,7 +21,9 @@ import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
......@@ -58,6 +60,11 @@ public class User extends BasePo implements Serializable {
private String checkCode;
private List<String> showList = new ArrayList<>();
private List<String> showButtonList = new ArrayList<>();
public boolean hasGroup(String groupId) {
if (groupId == null || groupId.equals("") || groupId.equals("-1")) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!