提交 acde5dcc 作者: 洪东保

模板类型授权

父级 b2588b0b
......@@ -30,13 +30,7 @@ public class MeetingTypeController {
*/
@PostMapping("/add")
public R add(@RequestBody @Validated(MeetingTypeVo.AddGroup.class) MeetingTypeVo meetingTypeVo) {
// 参数校验
Integer authType = meetingTypeVo.getAuthType();
if (MeetingTypeConstant.AUTH_TYPE_CUSTOM.equals(authType) && ObjectUtils.isEmpty(meetingTypeVo.getUserIds())) {
return R.error("userIds不能为空");
}
meetTypeService.add(meetingTypeVo);
return R.ok();
}
......@@ -46,13 +40,7 @@ public class MeetingTypeController {
*/
@PostMapping("/update")
public R update(@RequestBody @Validated(MeetingTypeVo.UpdateGroup.class) MeetingTypeVo meetingTypeVo) {
// 参数校验
Integer authType = meetingTypeVo.getAuthType();
if (MeetingTypeConstant.AUTH_TYPE_CUSTOM.equals(authType) && ObjectUtils.isEmpty(meetingTypeVo.getUserIds())) {
return R.error("userIds不能为空");
}
meetTypeService.update(meetingTypeVo);
return R.ok();
}
......
......@@ -10,6 +10,7 @@ import com.cmeeting.util.R;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO;
import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -59,19 +60,22 @@ public class PermissionController {
* @return
*/
@PostMapping("/remove")
public R remove(@Validated @RequestBody AuthVO.Add vo) {
boolean needTarget = vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
|| vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION);
if (needTarget && vo.getTargetId() == null) {
@Transactional(rollbackFor = Exception.class)
public R remove(@Validated @RequestBody AuthVO vo) {
for (AuthVO.Add authDatum : vo.getAuthData()) {
boolean needTarget = authDatum.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
|| authDatum.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION);
if (needTarget && authDatum.getTargetId() == null) {
throw new RuntimeException("param error! `purpose` equals 1 or 2, but `targetId` is null.");
}
return R.ok(modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getType, vo.getType())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getUserType, vo.getUserType())
.eq(ModulePermission::getPurpose, vo.getPurpose())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getRelId, vo.getRelId())
.eq(vo.getTargetId() != null, ModulePermission::getTargetId, vo.getTargetId()))
);
modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getType, authDatum.getType())
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getUserType, authDatum.getUserType())
.eq(ModulePermission::getPurpose, authDatum.getPurpose())
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getRelId, authDatum.getRelId())
.eq(authDatum.getTargetId() != null, ModulePermission::getTargetId, authDatum.getTargetId()));
}
return R.ok();
}
......
package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.MeetingTypeConstant;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.dto.MeetTypeDto;
import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.MeetTemplateEnableMapper;
......@@ -12,14 +15,19 @@ import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper;
import com.cmeeting.pojo.MeetTemplateEnable;
import com.cmeeting.pojo.MeetType;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.pojo.ModulePermission;
import com.cmeeting.service.MeetTypeService;
import com.cmeeting.mapper.primary.MeetTypeMapper;
import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.MeetingTypeVo;
import lombok.extern.slf4j.Slf4j;
import org.spongycastle.math.raw.Mod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
......@@ -41,6 +49,8 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
private MeetingRecordTemplateMapper meetingRecordTemplateMapper;
@Autowired
private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource
private ModulePermissionService modulePermissionService;
/**
* 添加会议类型
......@@ -48,6 +58,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
* @param meetingTypeVo 请求参数
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void add(MeetingTypeVo meetingTypeVo) {
Date now = new Date();
......@@ -57,7 +68,6 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
if (!"admin".equals(role)) {
throw new RobotBaseException("非管理员用户不允许创建会议类型");
}
MeetType meetType = new MeetType();
meetType.setName(meetingTypeVo.getName());
meetType.setPersonalPermission(meetingTypeVo.getPersonalPermission());
......@@ -70,7 +80,15 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
meetType.setUpdateUser(loginUser.getUserId());
meetType.setCreateUserName(loginUser.getUsername());
meetType.setUpdateUserName(loginUser.getUsername());
meetTypeMapper.insert(meetType);
if (meetTypeMapper.insert(meetType) != 0) {
List<AuthVO.Add> authData = meetingTypeVo.getAuthList().getAuthData();
if (CollUtil.isNotEmpty(authData)) {
Long targetId = meetType.getId();
authData.forEach(e->e.setTargetId(targetId));
modulePermissionService.auth(authData);
}
}
}
/**
......@@ -79,6 +97,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
* @param meetingTypeVo 请求参数
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void update(MeetingTypeVo meetingTypeVo) {
Date now = new Date();
RobotSecurityUser loginUser = SecurityUtil.getUser();
......@@ -93,7 +112,18 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
meetType.setUpdateTime(now);
meetType.setUpdateUser(loginUser.getUserId());
meetType.setUpdateUserName(loginUser.getUsername());
meetTypeMapper.updateById(meetType);
if (meetTypeMapper.updateById(meetType) != 0) {
modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getTargetId, meetingTypeVo.getId())
.eq(ModulePermission::getPurpose, PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
);
List<AuthVO.Add> authData = meetingTypeVo.getAuthList().getAuthData();
if (CollUtil.isNotEmpty(authData)) {
Long targetId = meetType.getId();
authData.forEach(e->e.setTargetId(targetId));
modulePermissionService.auth(authData);
}
}
}
/**
......
......@@ -32,7 +32,8 @@ public class MeetingTypeVo {
private Integer authType;
// 用户id
private List<String> userIds;
// private List<String> userIds;
private AuthVO authList;
// 参考类型id
private Long relId;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论