提交 708ef28e 作者: 洪东保

Merge branch 'hongdongbao'

...@@ -48,8 +48,6 @@ public class UserServiceImpl implements UserService { ...@@ -48,8 +48,6 @@ public class UserServiceImpl implements UserService {
public String aesKey; public String aesKey;
@Value("${permission.applicationId}") @Value("${permission.applicationId}")
public String applicationId; public String applicationId;
@Value("${removeMenus}")
private String removeMenus;
@Value("${jwt.expireTime}") @Value("${jwt.expireTime}")
private String expireTime; private String expireTime;
@Value("${permission.tenantId}") @Value("${permission.tenantId}")
...@@ -105,45 +103,6 @@ public class UserServiceImpl implements UserService { ...@@ -105,45 +103,6 @@ public class UserServiceImpl implements UserService {
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
RobotSecurityUser userDetail = (RobotSecurityUser) authentication.getPrincipal(); RobotSecurityUser userDetail = (RobotSecurityUser) authentication.getPrincipal();
String token = jwtUtil.generateToken(userDetail); String token = jwtUtil.generateToken(userDetail);
// List<SysMenu> menuList = commonMapper.getMenuList(permissionTenantId);
// // 需要对menuList进行过滤
// // 根据uid查询对应角色,然后查询角色对应的菜单权限
//
// menuList.sort(Comparator.comparingInt(SysMenu::getSort));
//
// // 总库去掉部分菜单
// if ("system".equals(userDetail.getUsername())) {
// List<String> removeMenuList = Arrays.asList(removeMenus.split(","));
// int size = menuList.size();
// for (int i = 0; i < size; i++) {
// SysMenu sysMenu = menuList.get(i);
// String tempName = sysMenu.getName();
// if (removeMenuList.contains(tempName)) {
// menuList.remove(sysMenu);
// size -= 1;
// i -= 1;
// }
// }
// }
// RoleTree loginMenus = getLoginMenus(menuList);
// HashSet<String> set = new HashSet<>();
// for (SysMenu sysMenu : menuList) {
// set.add(sysMenu.getPerms());
// }
// if (set.contains("interactCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getInteractCenter().add("modelList");
// loginMenus.getInteractCenter().add("modelPage");
// }
// if (set.contains("robotCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getRobotCenter().add("robotPage");
// }
// if (set.contains("processCenter")) {
// //看是否勾选了首页配置 121是首页菜单的id
// loginMenus.getProcessCenter().add("processPage");
// }
// userDetail.setMenus(loginMenus);
redisUtils.set(token, userDetail, Long.parseLong(expireTime)); redisUtils.set(token, userDetail, Long.parseLong(expireTime));
return token; return token;
......
package com.cmeeting.controller; package com.cmeeting.controller;
import com.azure.core.annotation.Get;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cmeeting.constant.CategoryConstant; import com.cmeeting.constant.CategoryConstant;
import com.cmeeting.constant.PermissionPruposeType; import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.pojo.ModulePermission; import com.cmeeting.pojo.ModulePermission;
import com.cmeeting.service.ModulePermissionService; import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.util.R; import com.cmeeting.util.R;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO; import com.cmeeting.vo.PermissionVO;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.validation.Valid;
@RestController @RestController
@RequestMapping("/permission") @RequestMapping("/permission")
...@@ -49,12 +47,12 @@ public class PermissionController { ...@@ -49,12 +47,12 @@ public class PermissionController {
* @return * @return
*/ */
@PostMapping("/auth") @PostMapping("/auth")
public R auth(@Validated @RequestBody PermissionVO.Auth vo) { public R auth(@Validated @RequestBody AuthVO vo) {
return R.ok(modulePermissionService.auth(vo.getAuthData())); return R.ok(modulePermissionService.auth(vo.getAuthData()));
} }
@PostMapping("/remove") @PostMapping("/remove")
public R remove(@Validated PermissionVO.Add vo) { public R remove(@Validated @RequestBody AuthVO.Add vo) {
boolean needTarget = vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION) boolean needTarget = vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
|| vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION); || vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION);
if (needTarget && vo.getTargetId() == null) { if (needTarget && vo.getTargetId() == null) {
......
...@@ -44,6 +44,7 @@ public class PermissionCheckedDTO implements Serializable { ...@@ -44,6 +44,7 @@ public class PermissionCheckedDTO implements Serializable {
* 0 部门 / 1 用户 * 0 部门 / 1 用户
*/ */
private Integer type; private Integer type;
private Integer userType;
private String name; private String name;
private String deptName; private String deptName;
} }
......
...@@ -3,6 +3,7 @@ package com.cmeeting.service; ...@@ -3,6 +3,7 @@ package com.cmeeting.service;
import com.cmeeting.dto.PermissionCheckedDTO; import com.cmeeting.dto.PermissionCheckedDTO;
import com.cmeeting.pojo.ModulePermission; import com.cmeeting.pojo.ModulePermission;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO; import com.cmeeting.vo.PermissionVO;
import java.util.List; import java.util.List;
...@@ -19,7 +20,7 @@ public interface ModulePermissionService extends IService<ModulePermission> { ...@@ -19,7 +20,7 @@ public interface ModulePermissionService extends IService<ModulePermission> {
List<PermissionCheckedDTO.CateOrUser> checkedList(String search, Integer purpose, Long targetId); List<PermissionCheckedDTO.CateOrUser> checkedList(String search, Integer purpose, Long targetId);
Boolean auth(List<PermissionVO.Add> authData); Boolean auth(List<AuthVO.Add> authData);
List<PermissionCheckedDTO.User> personalCancelList(); List<PermissionCheckedDTO.User> personalCancelList();
} }
...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.CategoryConstant; import com.cmeeting.constant.CategoryConstant;
import com.cmeeting.constant.PermissionPruposeType; import com.cmeeting.constant.PermissionPruposeType;
...@@ -15,6 +16,7 @@ import com.cmeeting.service.IShareUserService; ...@@ -15,6 +16,7 @@ import com.cmeeting.service.IShareUserService;
import com.cmeeting.service.ModulePermissionService; import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.mapper.primary.ModulePermissionMapper; import com.cmeeting.mapper.primary.ModulePermissionMapper;
import com.cmeeting.service.SysUserSyncService; import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO; import com.cmeeting.vo.PermissionVO;
import org.springframework.security.core.parameters.P; import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -51,20 +53,23 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap ...@@ -51,20 +53,23 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap
Set<String> deptIds = permissions.stream() Set<String> deptIds = permissions.stream()
.filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_DEPT)) .filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_DEPT))
.map(ModulePermission::getRelId).collect(Collectors.toSet()); .map(ModulePermission::getRelId).collect(Collectors.toSet());
Set<String> userIds = permissions.stream().filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_USER))
.map(ModulePermission::getRelId).collect(Collectors.toSet());
// 授权了所有人
boolean all = userIds.contains(CategoryConstant.ALL_EN) || deptIds.contains(CategoryConstant.ALL_EN);
List<PermissionCheckedDTO.Category> categoryList = dto.getCategoryList(); List<PermissionCheckedDTO.Category> categoryList = dto.getCategoryList();
if (CollUtil.isNotEmpty(deptIds) && CollUtil.isEmpty(categoryList)) { if (CollUtil.isNotEmpty(deptIds) && CollUtil.isEmpty(categoryList)) {
for (PermissionCheckedDTO.Category category : categoryList) { for (PermissionCheckedDTO.Category category : categoryList) {
if (deptIds.contains(category.getId())) { if (all || deptIds.contains(category.getId())) {
category.setCheck(true); category.setCheck(true);
} }
} }
} }
List<PermissionCheckedDTO.User> userList = dto.getUserList(); List<PermissionCheckedDTO.User> userList = dto.getUserList();
Set<String> userIds = permissions.stream().filter(e -> e.getType().equals(RecordTemplateConstant.REL_TYPE_USER))
.map(ModulePermission::getRelId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(userIds) && CollUtil.isEmpty(userList)) { if (CollUtil.isNotEmpty(userIds) && CollUtil.isEmpty(userList)) {
for (PermissionCheckedDTO.User user : userList) { for (PermissionCheckedDTO.User user : userList) {
if (userIds.contains(user.getId())) { if (all || userIds.contains(user.getId())) {
user.setCheck(true); user.setCheck(true);
} }
} }
...@@ -99,23 +104,34 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap ...@@ -99,23 +104,34 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap
.eq(targetId != null, ModulePermission::getTargetId, targetId) .eq(targetId != null, ModulePermission::getTargetId, targetId)
.select(ModulePermission::getRelId, ModulePermission::getType) .select(ModulePermission::getRelId, ModulePermission::getType)
); );
if (CollUtil.isNotEmpty(modulePermissions)) { if (CollUtil.isNotEmpty(modulePermissions)) {
List<String> cateIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_DEPT)).map(ModulePermission::getRelId).collect(Collectors.toList()); List<String> cateIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_DEPT)).map(ModulePermission::getRelId).collect(Collectors.toList());
List<String> userIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_USER)).map(ModulePermission::getRelId).collect(Collectors.toList()); List<String> userIds = modulePermissions.stream().filter(e -> Objects.equals(e.getType(), RecordTemplateConstant.REL_TYPE_USER)).map(ModulePermission::getRelId).collect(Collectors.toList());
Set<String> ids = modulePermissions.stream().map(ModulePermission::getRelId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(ids) && ids.contains(CategoryConstant.ALL_EN)) {
PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder()
.id(CategoryConstant.ALL_EN).name("所有人").deptName("所有人").userType(UserTypeConstant.SYNC).type(RecordTemplateConstant.REL_TYPE_USER).build();
retList.add(cateOrUser);
return retList;
}
PermissionCheckedDTO permissionCheckedDTO = permissionList(search, null, null, purpose, cateIds, userIds); PermissionCheckedDTO permissionCheckedDTO = permissionList(search, null, null, purpose, cateIds, userIds);
if (CollUtil.isNotEmpty(permissionCheckedDTO.getUserList())) { if (CollUtil.isNotEmpty(permissionCheckedDTO.getUserList())) {
for (PermissionCheckedDTO.User user : permissionCheckedDTO.getUserList()) { for (PermissionCheckedDTO.User user : permissionCheckedDTO.getUserList()) {
PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder() if (userIds.contains(user.getId())) {
.id(user.getId()).name(user.getName()).deptName(user.getDeptName()).type(RecordTemplateConstant.REL_TYPE_USER).build(); PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder()
retList.add(cateOrUser); .id(user.getId()).name(user.getName()).deptName(user.getDeptName()).userType(user.getUserType()).type(RecordTemplateConstant.REL_TYPE_USER).build();
retList.add(cateOrUser);
}
} }
} }
if (CollUtil.isNotEmpty(permissionCheckedDTO.getCategoryList())) { if (CollUtil.isNotEmpty(permissionCheckedDTO.getCategoryList())) {
for (PermissionCheckedDTO.Category category : permissionCheckedDTO.getCategoryList()) { for (PermissionCheckedDTO.Category category : permissionCheckedDTO.getCategoryList()) {
PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder() if (cateIds.contains(category.getId())) {
.id(category.getId()).name(category.getName()).deptName(category.getName()).type(RecordTemplateConstant.REL_TYPE_DEPT).build(); PermissionCheckedDTO.CateOrUser cateOrUser = PermissionCheckedDTO.CateOrUser.builder()
retList.add(cateOrUser); .id(category.getId()).name(category.getName()).deptName(category.getName()).userType(category.getUserType()).type(RecordTemplateConstant.REL_TYPE_DEPT).build();
retList.add(cateOrUser);
}
} }
} }
} }
...@@ -123,10 +139,10 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap ...@@ -123,10 +139,10 @@ public class ModulePermissionServiceImpl extends ServiceImpl<ModulePermissionMap
} }
@Override @Override
public Boolean auth(List<PermissionVO.Add> authData) { public Boolean auth(List<AuthVO.Add> authData) {
if (CollUtil.isNotEmpty(authData)) { if (CollUtil.isNotEmpty(authData)) {
List<ModulePermission> list = new ArrayList<>(); List<ModulePermission> list = new ArrayList<>();
for (PermissionVO.Add authDatum : authData) { for (AuthVO.Add authDatum : authData) {
ModulePermission permission = BeanUtil.copyProperties(authDatum, ModulePermission.class); ModulePermission permission = BeanUtil.copyProperties(authDatum, ModulePermission.class);
permission.setCreateTime(new Date()); permission.setCreateTime(new Date());
list.add(permission); list.add(permission);
......
package com.cmeeting.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AuthVO {
@NotEmpty(message = "param ids cant be null!")
private List<Add> authData;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Add {
/**
* 类型,0-分类,1-用户
*/
@NotNull
private Integer type;
/**
* 用户类型,2-通讯录,3-超管分享
*/
@NotNull
private Integer userType;
/**
* 0-授权纪要功能,1-纪要类型分享,2-纪要模板分享,3-用户自己关闭纪要功能
*/
@NotNull
private Integer purpose;
/**
* 关联id(分类id或用户id) 为all时 表示所有人授权/清空所有权限
*/
@NotNull
private String relId;
/**
* purpose为0/3时为空,为1时是纪要类型id,2时纪要模板id
*/
private Long targetId;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Remove {
/**
* 类型,0-分类,1-用户
*/
@NotNull
private Integer type;
/**
* 用户类型,2-通讯录,3-超管分享
*/
@NotNull
private Integer userType;
/**
* 0-授权纪要功能,1-纪要类型分享,2-纪要模板分享,3-用户自己关闭纪要功能
*/
@NotNull
private Integer purpose;
/**
* 关联id(分类id或用户id) 为all时 表示所有人授权/清空所有权限
*/
@NotNull
private String relId;
/**
* purpose为0/3时为空,为1时是纪要类型id,2时纪要模板id
*/
private Long targetId;
}
}
...@@ -52,45 +52,5 @@ public class PermissionVO { ...@@ -52,45 +52,5 @@ public class PermissionVO {
} }
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Auth {
@NotEmpty(message = "param ids cant be null!")
private List<Add> authData;
}
@Data
public static class Add {
/**
* 类型,0-分类,1-用户
*/
@NotNull
private Integer type;
/**
* 用户类型,2-通讯录,3-超管分享
*/
@NotNull
private Integer userType;
/**
* 0-授权纪要功能,1-纪要类型分享,2-纪要模板分享,3-用户自己关闭纪要功能
*/
@NotNull
private Integer purpose;
/**
* 关联id(分类id或用户id) 为all时 表示所有人授权/清空所有权限
*/
@NotNull
private String relId;
/**
* purpose为0/3时为空,为1时是纪要类型id,2时纪要模板id
*/
private Long targetId;
}
} }
...@@ -135,8 +135,6 @@ userAdmin: ...@@ -135,8 +135,6 @@ userAdmin:
file-download-path: /download/minio/ file-download-path: /download/minio/
docDomain: http://192.168.10.157:8102/knowledgePlatform docDomain: http://192.168.10.157:8102/knowledgePlatform
removeMenus: 关键词回复,业务词库,同义词管理,答案库
jwt: jwt:
header: Authorization header: Authorization
customHeader: 'Custom-Auth-Token' customHeader: 'Custom-Auth-Token'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论