Commit 20b1e535 LN

bug修改。权限查询修改。

1 个父辈 47b37aac
......@@ -202,16 +202,27 @@ public abstract class AbstractBaseDao implements IBaseDao {
public String getNextId(String domain) {
Query query = Query.query(Criteria.where("id").is(domain));
FindAndModifyOptions options = FindAndModifyOptions.options().returnNew(true);
FindAndModifyOptions options = FindAndModifyOptions.options().returnNew(false);
Update update = new Update().inc("seq", 1);
Sequence sequence = mongoTemplate.findAndModify(query, update, options, Sequence.class);
if (sequence == null) {
//
int inidex = domain.lastIndexOf(".");
String name = domain.substring(inidex);
Query query2 = Query.query(Criteria.where("id").regex("\\" + name + "$"));
FindAndModifyOptions options2 = FindAndModifyOptions.options().returnNew(false);
Update update2 = new Update().inc("seq", 1);
sequence = mongoTemplate.findAndModify(query2, update2, options2, Sequence.class);
if (sequence == null) {
log.info("Seq bean is null, create new one with domain " + domain);
sequence = new Sequence();
sequence.setId(domain);
sequence.setSeq(new Long(1));
getMongoTemplate().insert(sequence);
}
}
return sequence.getSeq().toString();
}
......
......@@ -144,26 +144,31 @@ public class DataInitManager {
private List<Menu> createSubPerMenus(Menu menu) {
List<Menu> list = new ArrayList<>();
// //如果是list结尾的,默认增加其他的权限菜单
// Map<String, String[]> defaultMenus = new HashMap<>();
// defaultMenus.put("menu", new String[]{"menu:edit", "menu:del", "menu:add"});
// defaultMenus.put("user",new String[]{});
// defaultMenus.put("role",new String[]{});
//
// String per = menu.getPermission().replace(":list", "");
// String menuName = menu.getTitle().replace("管理", "");
// if (!defaultMenus.containsKey(per)) {
//如果是list结尾的,默认前缀菜单
Map<String, String[]> defaultMenus = new HashMap<>();
defaultMenus.put("boxkanban",new String[]{"boxkanban:info","boxkanban:list"});
defaultMenus.put("sensorShelf",new String[]{"sensorShelf:putIn"});
defaultMenus.put("menu", new String[]{"menu:edit", "menu:del", "menu:add"});
defaultMenus.put("user",new String[]{});
defaultMenus.put("role",new String[]{});
String per = menu.getPermission().replace(":list", "");
String menuName = menu.getTitle().replace("管理", "");
if (!defaultMenus.containsKey(per)) {
defaultMenus.put(per,new String[]{per});
// return list;
// }
// String[] subPers = defaultMenus.get(per);
// if (subPers.length <= 0) {
}
String[] subPers = defaultMenus.get(per);
if (subPers.length <= 0) {
// subPers = new String[]{per + ":edit", per + ":del", per + ":add"};
// }
// for (String subPer :
// subPers) {
// Menu subperMenu = menuManager.save(Menu.CreatePerMenu(subPer, menuName + "_" + subPer, menu.getId()));
// list.add(subperMenu);
// }
subPers = new String[]{per };
}
for (String subPer :
subPers) {
String title="权限_"+menuName+"_"+subPer;
Menu subperMenu = menuManager.save(Menu.CreatePerMenu(subPer, title, menu.getId()));
list.add(subperMenu);
}
return list;
}
......@@ -176,7 +181,7 @@ public class DataInitManager {
// menukanban.setHidden(true);
menus.addAll(createMenus(menukanban));
//料架分组
Menu menuShelf = new Menu(new ArrayList<Menu>(), 1, "menu:list", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "neo1");
Menu menuShelf = new Menu(new ArrayList<Menu>(), 1, "sensorShelf", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "neo1");
// menuShelf.setHidden(true);
menus.addAll(createMenus(menuShelf));
......
......@@ -2,13 +2,14 @@ package com.neotel.smfcore.security.config;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service(value = "el")
public class ElPermissionConfig {
public Boolean check(String ... permissions){
......@@ -20,7 +21,17 @@ public class ElPermissionConfig {
// 获取当前用户的所有权限
List<String> elPermissions = SecurityUtils.getCurrentUser().getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
// 判断当前用户的所有权限是否包含接口上定义的权限
return elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
boolean result= elPermissions.contains("admin") || Arrays.stream(permissions).anyMatch(elPermissions::contains);
String msg="";
for (String str :
permissions) {
msg+=str+",";
}
if(!result){
log.info("username["+SecurityUtils.getCurrentUsername()+"] 对 ["+msg+"]无访问权限");
}
return result;
}
}
......@@ -116,7 +116,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
return permissions.stream().map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
}
List<Menu> menus=menuManager.findByRoleId(user.getRoleId());
List<Menu> menus=menuManager.findPermissionByRoleId(user.getRoleId());
permissions = menus.stream().filter(menu -> StringUtils.isNotBlank(menu.getPermission()))
.map(Menu::getPermission).collect(Collectors.toSet());
return permissions.stream().map(SimpleGrantedAuthority::new)
......
......@@ -30,6 +30,12 @@ public interface IMenuManager extends IBaseManager<Menu> {
List<Menu> findByUserId(String currentUserId);
/**
* 根据角色ID查找所有的权限列表
* @param roleId
* @return
*/
List<Menu> findPermissionByRoleId(String roleId) ;
/**
* 构建菜单树
* @param menuDtos 原始数据
* @return /
......
......@@ -82,6 +82,18 @@ public class MenuManagerImpl implements IMenuManager {
}
return new ArrayList<Menu>();
}
@Override
public List<Menu> findPermissionByRoleId(String roleId) {
Role role= roleManager.get(roleId);
if(role!=null){
Criteria c = Criteria.where("id").in(role.getMenus());
Query query = new Query(c);
query.with(Sort.by(Sort.Direction.ASC, "menuSort"));
List<Menu> menus= findByQuery(query);
return menus;
}
return new ArrayList<Menu>();
}
@Override
public List<Menu> findByUserId(String currentUserId) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!