邀请增加管理员身份校验

This commit is contained in:
tianfeng 2025-11-28 18:15:11 +08:00
parent b8b7520a25
commit 84507b86d5
3 changed files with 20 additions and 1 deletions

View File

@ -242,6 +242,11 @@ public enum TeamErrorCode implements IResponseErrorCode {
* 设备指纹已被其他代理使用
*/
DEVICE_FINGERPRINT_USED_BY_AGENCY(6054, "This user's current device is no longer able to add any more agency."),
/**
* 用户是管理员
*/
USER_IS_A_ADMIN(6055, "This user is a administrator."),
;
private final Integer code;

View File

@ -19,6 +19,7 @@ import com.red.circle.other.infra.database.mongo.service.team.bd.BdInviteAgentMe
import com.red.circle.other.infra.database.mongo.service.team.team.TeamApplicationProcessService;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberService;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamProfileService;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.database.rds.service.team.BusinessDevelopmentBaseInfoService;
import com.red.circle.other.infra.database.rds.service.user.device.LatestMobileDeviceService;
import com.red.circle.other.inner.asserts.user.UserErrorCode;
@ -61,9 +62,13 @@ public class BdAgentInviteExe {
private final BdInviteAgentMessageService bdInviteAgentMessageService;
private final TeamApplicationProcessService teamApplicationProcessService;
private final BusinessDevelopmentBaseInfoService businessDevelopmentBaseInfoService;
private final AdministratorService administratorService;
public void execute(DbInviteAgentCmd cmd) {
ResponseAssert.isFalse(TeamErrorCode.USER_IS_A_ADMIN,
administratorService.existsAdmin(cmd.getInviteUserId()));
// 权限不足
ResponseAssert.isTrue(CommonErrorCode.INSUFFICIENT_PERMISSION,
businessDevelopmentBaseInfoService.checkBD(cmd.requiredReqUserId()));

View File

@ -15,6 +15,7 @@ import com.red.circle.other.infra.database.mongo.entity.team.bd.BdInviteAgentMes
import com.red.circle.other.infra.database.mongo.entity.team.bd.MessageInviteGroup;
import com.red.circle.other.infra.database.mongo.service.team.bd.BdInviteAgentMessageService;
import com.red.circle.other.infra.database.rds.entity.team.BusinessDevelopmentBaseInfo;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.database.rds.service.team.BusinessDevelopmentBaseInfoService;
import com.red.circle.other.infra.database.rds.service.team.RoomBdLeadService;
import com.red.circle.other.inner.asserts.user.UserErrorCode;
@ -49,6 +50,7 @@ public class BdLeaderInviteBdExe {
private final UserProfileAppConvertor userProfileAppConvertor;
private final BdInviteAgentMessageService bdInviteAgentMessageService;
private final BusinessDevelopmentBaseInfoService businessDevelopmentBaseInfoService;
private final AdministratorService administratorService;
public void execute(DbLeaderInviteBdCmd cmd) {
@ -63,7 +65,11 @@ public class BdLeaderInviteBdExe {
ResponseAssert.isFalse(TeamErrorCode.USER_IS_ALREADY_A_BD,
businessDevelopmentBaseInfoService.checkBD(cmd.getInviteUserId()));
// 权限不足
ResponseAssert.isFalse(TeamErrorCode.USER_IS_A_ADMIN,
administratorService.existsAdmin(cmd.getInviteUserId()));
// 权限不足
BusinessDevelopmentBaseInfo bd = getDevelopmentBaseInfoServiceByUserId(cmd);
ResponseAssert.isFalse(CommonErrorCode.INSUFFICIENT_PERMISSION, Objects.nonNull(bd)
&& Objects.nonNull(bd.getBdLeadUserId()));
@ -111,6 +117,9 @@ public class BdLeaderInviteBdExe {
ResponseAssert.isFalse(CommonErrorCode.INSUFFICIENT_PERMISSION,
roomBdLeadService.checkBdLeader(cmd.getInviteUserId()));
ResponseAssert.isFalse(TeamErrorCode.USER_IS_A_ADMIN,
administratorService.existsAdmin(cmd.getInviteUserId()));
List<Long> bdUserIds = businessDevelopmentBaseInfoService.listBdUserIdsByLeaderId(cmd.requiredReqUserId());
ResponseAssert.isFalse(CommonErrorCode.INSUFFICIENT_PERMISSION, bdUserIds.contains(cmd.getInviteUserId()));