update:修改分组管理,非管理员用户只能看见自己创建的分组

This commit is contained in:
sunzheng
2024-08-01 16:35:15 +08:00
parent 7fde0e26b1
commit e5060db1a0
6 changed files with 29 additions and 9 deletions
@@ -1,15 +1,17 @@
package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.system.entity.SysGroup;
import com.jero.modules.system.service.ISysGroupService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -98,7 +100,10 @@ public class SysGroupController {
@GetMapping("/list")
@ApiOperation(value = "分组管理-列表查询", notes = "分组管理-列表查询")
public Result<Object> list() {
List<SysGroup> list = sysGroupService.list();
LambdaQueryWrapper<SysGroup> lambdaQueryWrapper = new LambdaQueryWrapper<>();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
lambdaQueryWrapper.eq(SysGroup::getCreateBy, loginUser.getUsername());
List<SysGroup> list = sysGroupService.list(lambdaQueryWrapper);
return Result.OK(list);
}
@@ -64,4 +64,12 @@ public class SysGroup implements Serializable {
@ApiModelProperty("多个用户名")
private String userNames;
@TableField(exist = false)
@ApiModelProperty("当前登录用户的用户名")
private String currentUserName;
@TableField(exist = false)
@ApiModelProperty("是否拥有管理员身份 0-否 1-是")
private String isAdmin;
}
@@ -18,6 +18,9 @@
<if test="sysGroup.groupName != null and sysGroup.groupName != ''">
AND sg.group_name LIKE CONCAT('%',CONCAT(#{sysGroup.groupName},'%'))
</if>
<if test="sysGroup.isAdmin != 1">
AND sg.create_by = #{sysGroup.currentUserName}
</if>
<if test="sysGroup.userNameOrWorkId != null and sysGroup.userNameOrWorkId != ''">
AND sg.id IN (
SELECT sg.id
@@ -8,11 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.system.entity.SysGroup;
import com.jero.modules.system.entity.SysUserGroup;
import com.jero.modules.system.mapper.SysGroupMapper;
import com.jero.modules.system.service.ISysGroupService;
import com.jero.modules.system.service.ISysUserGroupService;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -36,12 +38,21 @@ public class SysGroupServiceImpl extends ServiceImpl<SysGroupMapper, SysGroup> i
@Resource
private SysGroupMapper sysGroupMapper;
@Override
public IPage<SysGroup> queryPageList(SysGroup sysGroup, Integer pageNo, Integer pageSize, HttpServletRequest req) {
Page<SysGroup> page = new Page(pageNo, pageSize);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (loginUser.getRoleIds().contains("admin") || loginUser.getRoleIds().contains("superAdmin")){
sysGroup.setIsAdmin("1");
}else {
sysGroup.setIsAdmin("0");
}
sysGroup.setCurrentUserName(loginUser.getUsername());
return sysGroupMapper.queryPageList(page, sysGroup);
}
@Override
public Result<Object> add(SysGroup sysGroup) {
if (Objects.isNull(sysGroup) || StringUtils.isBlank(sysGroup.getGroupName())) {
@@ -76,8 +76,6 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
private String appId;
@Value("${feishu.app_secret}")
private String appSecret;
@Value("${feishu.managersIds}")
private String managersIds;
private static final String USER_INFO = "userInfo";
@@ -162,9 +160,6 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
approvalsDefinitionVo.setExternal(definitionExternal);
approvalsDefinitionVo.setViewers(viewers);
approvalsDefinitionVo.setI18n_resources(i18n_resources);
List<String> mangers = Arrays.asList(managersIds.split(","));
String[] mangersString = mangers.toArray(new String[0]);
approvalsDefinitionVo.setManagers(mangersString);
return approvalsDefinitionVo;
}
@@ -569,8 +569,6 @@ feishu:
app_id : cli_a61204ce741ed00b
# app秘钥
app_secret: lblKYMV4im4nP4YkBdgefKLPEdGBwaXA
# 审批定义的流程管理员的user_id:
managersIds: aacb77d4
# 基础地址:
base_url: https://open.feishu.cn/open-apis
# 获取token的地址