Commit 20b1e535 LN

bug修改。权限查询修改。

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