添加项目权限校验方法

This commit is contained in:
lcj
2025-03-10 09:58:54 +08:00
parent 44ae13cec2
commit 824f30d45f
22 changed files with 273 additions and 230 deletions

View File

@ -43,8 +43,8 @@ public class BusMachineryController extends BaseController {
*/
@SaCheckPermission("machinery:machinery:list")
@GetMapping("/list")
public Page<BusMachineryVo> list(MachineryQueryReq req) {
return busMachineryService.queryPageList(req);
public R<Page<BusMachineryVo>> list(MachineryQueryReq req) {
return R.ok(busMachineryService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusMachineryDetailController extends BaseController {
*/
@SaCheckPermission("machinery:machineryDetail:list")
@GetMapping("/list")
public Page<BusMachineryDetailVo> list(MachineryDetailQueryReq req) {
return busMachineryDetailService.queryPageList(req);
public R<Page<BusMachineryDetailVo>> list(MachineryDetailQueryReq req) {
return R.ok(busMachineryDetailService.queryPageList(req));
}
/**

View File

@ -12,6 +12,7 @@ import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.ObjectUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.sql.SqlUtil;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.machinery.domain.BusMachinery;
import org.dromara.machinery.domain.req.machinery.MachineryCreateReq;
import org.dromara.machinery.domain.req.machinery.MachineryQueryReq;
@ -142,6 +143,9 @@ public class BusMachineryServiceImpl extends ServiceImpl<BusMachineryMapper, Bus
if (StrUtil.isBlank(machineryName)) {
throw new ServiceException("机械名称不能为空", HttpStatus.BAD_REQUEST);
}
// 判断用户是否对项目下的内容有操作权限
Long userId = LoginHelper.getUserId();
projectService.validAuth(projectId, userId);
}
/**

View File

@ -45,8 +45,8 @@ public class BusCompanyController extends BaseController {
*/
@SaCheckPermission("materials:company:list")
@GetMapping("/list")
public Page<BusCompanyVo> list(CompanyQueryReq req) {
return busCompanyService.queryPageList(req);
public R<Page<BusCompanyVo>> list(CompanyQueryReq req) {
return R.ok(busCompanyService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusMaterialsController extends BaseController {
*/
@SaCheckPermission("materials:materials:list")
@GetMapping("/list")
public Page<BusMaterialsVo> list(MaterialsQueryReq req) {
return busMaterialsService.queryPageList(req);
public R<Page<BusMaterialsVo>> list(MaterialsQueryReq req) {
return R.ok(busMaterialsService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusMaterialsInventoryController extends BaseController {
*/
@SaCheckPermission("materials:materialsInventory:list")
@GetMapping("/list")
public Page<BusMaterialsInventoryVo> list(MaterialsInventoryQueryReq req) {
return busMaterialsInventoryService.queryPageList(req);
public R<Page<BusMaterialsInventoryVo>> list(MaterialsInventoryQueryReq req) {
return R.ok(busMaterialsInventoryService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusConstructionUserController extends BaseController {
*/
@SaCheckPermission("project:constructionUser:list")
@GetMapping("/list")
public Page<BusConstructionUserVo> list(ConstructionUserQueryReq req) {
return busConstructionUserService.queryPageList(req);
public R<Page<BusConstructionUserVo>> list(ConstructionUserQueryReq req) {
return R.ok(busConstructionUserService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusContractorController extends BaseController {
*/
@SaCheckPermission("project:contractor:list")
@GetMapping("/list")
public Page<BusContractorVo> list(ContractorQueryReq req) {
return busContractorService.queryPageList(req);
public R<Page<BusContractorVo>> list(ContractorQueryReq req) {
return R.ok(busContractorService.queryPageList(req));
}
/**

View File

@ -45,8 +45,8 @@ public class BusProjectController extends BaseController {
*/
@SaCheckPermission("project:project:list")
@GetMapping("/list")
public Page<BusProjectVo> list(ProjectQueryReq req) {
return projectService.queryPageList(req);
public R<Page<BusProjectVo>> list(ProjectQueryReq req) {
return R.ok(projectService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusProjectTeamController extends BaseController {
*/
@SaCheckPermission("project:projectTeam:list")
@GetMapping("/list")
public Page<BusProjectTeamVo> list(ProjectTeamQueryReq req) {
return busProjectTeamService.queryPageList(req);
public R<Page<BusProjectTeamVo>> list(ProjectTeamQueryReq req) {
return R.ok(busProjectTeamService.queryPageList(req));
}
/**

View File

@ -43,8 +43,8 @@ public class BusProjectTeamMemberController extends BaseController {
*/
@SaCheckPermission("project:projectTeamMember:list")
@GetMapping("/list")
public Page<BusProjectTeamMemberVo> list(ProjectTeamMemberQueryReq req) {
return busProjectTeamMemberService.queryPageList(req);
public R<Page<BusProjectTeamMemberVo>> list(ProjectTeamMemberQueryReq req) {
return R.ok(busProjectTeamMemberService.queryPageList(req));
}
/**

View File

@ -50,8 +50,8 @@ public class BusUserProjectRelevancyController extends BaseController {
@Tag(name = "查询用户与项目关联列表")
@SaCheckPermission("project:projectRelevancy:list")
@GetMapping("/list")
public Page<BusUserProjectRelevancyVo> list(UserProjectRelevancyQueryReq req) {
return userProjectRelevancyService.queryPageList(req);
public R<Page<BusUserProjectRelevancyVo>> list(UserProjectRelevancyQueryReq req) {
return R.ok(userProjectRelevancyService.queryPageList(req));
}
/**
@ -97,7 +97,7 @@ public class BusUserProjectRelevancyController extends BaseController {
@SaCheckPermission("project:projectRelevancy:query")
@GetMapping("/{id}")
public R<BusUserProjectRelevancyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable Long id) {
return R.ok(userProjectRelevancyService.queryById(id));
}

View File

@ -93,4 +93,12 @@ public interface IBusProjectService extends IService<BusProject> {
*/
Page<BusProjectVo> getVoPage(Page<BusProject> projectPage);
/**
* 校验用户是否拥有操作项目的权限
*
* @param projectId 项目id
* @param userId 需要鉴权的用户id
*/
void validAuth(Long projectId, Long userId);
}

View File

@ -273,4 +273,20 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
return projectVoPage;
}
/**
* 校验用户是否拥有操作项目的权限
*
* @param projectId 项目对象
* @param userId 需要鉴权的用户id
*/
@Override
public void validAuth(Long projectId, Long userId) {
QueryWrapper<BusUserProjectRelevancy> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
queryWrapper.eq("user_id", userId);
if (userProjectRelevancyService.count(queryWrapper) <= 0) {
throw new ServiceException("当前用户无权限操作", HttpStatus.UNAUTHORIZED);
}
}
}

View File

@ -13,14 +13,15 @@ import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.ObjectUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.sql.SqlUtil;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.project.domain.BusProjectTeam;
import org.dromara.project.domain.req.projectteam.ProjectTeamCreateReq;
import org.dromara.project.domain.req.projectteam.ProjectTeamQueryReq;
import org.dromara.project.domain.req.projectteam.ProjectTeamUpdateReq;
import org.dromara.project.domain.vo.BusProjectTeamVo;
import org.dromara.project.mapper.BusProjectTeamMapper;
import org.dromara.project.service.IBusProjectTeamService;
import org.dromara.project.service.IBusProjectService;
import org.dromara.project.service.IBusProjectTeamService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -100,7 +101,7 @@ public class BusProjectTeamServiceImpl extends ServiceImpl<BusProjectTeamMapper,
// 操作数据库
boolean save = this.save(projectTeam);
if (!save) {
throw new ServiceException("新增施工人员失败,数据库异常", HttpStatus.ERROR);
throw new ServiceException("新增项目班组失败,数据库异常", HttpStatus.ERROR);
}
return projectTeam.getId();
}
@ -148,6 +149,9 @@ public class BusProjectTeamServiceImpl extends ServiceImpl<BusProjectTeamMapper,
if (projectService.getById(projectId) == null) {
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
}
// 判断用户是否对项目下的内容有操作权限
Long userId = LoginHelper.getUserId();
projectService.validAuth(projectId, userId);
}
/**