fix(Bug修复): 用户申请加入专区,接口报错无权限

原因:申请加入专区时调用了校验数据权限的查询专区详情接口
修复方案:申请加入专区接口不校验数据权限
This commit is contained in:
OTTO 2024-09-10 09:33:43 +08:00
parent b4fd5ece52
commit d05756932a
4 changed files with 20 additions and 7 deletions

View File

@ -225,12 +225,6 @@ public class PmsEnterpriseServiceImpl implements IPmsEnterpriseService {
List<GitLinkUserSimpleInfoVo> gitlinkUserList = pmsCommonService.getAllGitlinkUsersByOrgTeam(
pmsEnterprise.getEnterpriseIdentifier(), gitlinkOrganizationTeamVo.getId()
);
if ("owner".equalsIgnoreCase(gitlinkOrganizationTeamVo.getAuthorize())) {
boolean currentUserIsOwner = gitlinkUserList.stream().anyMatch(x -> x.getUserId().equals(SecurityUtils.getGitlinkUserId()));
if (!currentUserIsOwner) {
throw new ServiceException("当前用户非组织管理员,无法开通工作台");
}
}
for (GitLinkUserSimpleInfoVo gitLinkUserSimpleInfoVo : gitlinkUserList) {
if (gitLinkUserSimpleInfoVo.getUserId() == null) {
break;

View File

@ -224,4 +224,12 @@ public interface IZoneDetailService {
* @param zoneKey 专区标识
*/
void checkZoneKey(String zoneKey);
/**
* 查询专区详情不校验数据权限
*
* @param zoneId 专区id
* @return 专区详情
*/
ZoneDetail selectZoneDetailByIdNotVerifiedDataScope(Long zoneId);
}

View File

@ -116,6 +116,17 @@ public class ZoneDetailServiceImpl implements IZoneDetailService {
@Override
public ZoneDetail selectZoneDetailById(Long id) {
checkZoneDataScope(id);
return selectZoneDetailByIdNotVerifiedDataScope(id);
}
/**
* 查询特色专区详情(不校验数据权限)
*
* @param id 特色专区详情主键
* @return 特色专区详情
*/
@Override
public ZoneDetail selectZoneDetailByIdNotVerifiedDataScope(Long id) {
ZoneDetail zoneDetail = zoneDetailMapper.selectZoneDetailById(id);
if (zoneDetail == null) {
throw new ServiceException("该特色专区不存在或无权限访问(专区id[" + id + "])");

View File

@ -449,7 +449,7 @@ public class ZoneMemberServiceImpl implements IZoneMemberService {
public boolean applyToJoinZone(Long zoneId, ZoneMemberApplyVo zoneMemberApplyVo) {
Long currentUserId = SecurityUtils.getUserId();
String currentUsername = SecurityUtils.getUsername();
ZoneDetail zoneDetail = zoneDetailService.selectZoneDetailById(zoneId);
ZoneDetail zoneDetail = zoneDetailService.selectZoneDetailByIdNotVerifiedDataScope(zoneId);
ZoneMember zoneMember = zoneMemberMapper.selectZoneMemberByZoneIdAndUserId(zoneId, currentUserId);
if (zoneMember != null) {
throw new ServiceException("专区中已存在该会员(专区名称[" + zoneDetail.getName() + "],用户名[" + SecurityUtils.getUsername() + "])");