fix(用户权限): 非内置用户操作组织成员时可能因为与Forge权限不一致导致异步任务失败

修复方案:Forge所有操作均调整为Forge内置管理员进行操作
This commit is contained in:
OTTO 2024-09-02 15:47:57 +08:00
parent a526995a58
commit 67bf5caecf
3 changed files with 12 additions and 60 deletions

View File

@ -59,7 +59,7 @@ public class GitLinkRequestUrl {
}
public static GitLinkRequestUrl GET_LIST_BY_PAGES(String url, Integer page, Integer limit) {
return getGitLinkRequestUrl(String.format("%s?page=%d&limit=%d", url, page, limit));
return getAdminGitLinkRequestUrl(String.format("%s?page=%d&limit=%d", url, page, limit));
}
/**

View File

@ -5,6 +5,7 @@ import com.microservices.common.core.constant.SecurityConstants;
import com.microservices.common.core.enums.SystemRole;
import com.microservices.common.core.exception.ServiceException;
import com.microservices.common.core.utils.DateUtils;
import com.microservices.common.httpClient.domain.GitLinkRequestUrl;
import com.microservices.common.httpClient.util.GitLinkRequestHelper;
import com.microservices.pms.common.service.IPmsCommonAsyncService;
import com.microservices.pms.common.service.IPmsCommonService;
@ -245,6 +246,12 @@ public class PmsCommonAsyncServiceImpl implements IPmsCommonAsyncService {
CustomExecutorFactory.threadPoolExecutor.execute(() -> {
PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseById(enterpriseId);
try {
// Forge组织中添加内置管理员用户
JSONObject gitlinkAdminUser = gitLinkRequestHelper.doGet(GitLinkRequestUrl.USER(gitLinkRequestHelper.adminUsername));
GitLinkUserToEnterpriseInputVo adminUser = new GitLinkUserToEnterpriseInputVo();
adminUser.setUserId(gitlinkAdminUser.getLong("user_id"));
adminUser.setRoleKey(SystemRole.PMS_ORG_ADMIN.getRoleKey());
gitLinkUserToEnterpriseInputVoList.add(adminUser);
pmsEnterpriseService.increaseOpenEnterpriseProcessCount(pmsEnterprise.getGitlinkOrgId());
// 获取组织下所有团队
List<GitlinkOrganizationTeamVo> gitlinkOrganizationTeamVoList = pmsCommonService.getAllGitlinkOrgTeams(pmsEnterprise.getGitlinkOrgId());

View File

@ -17,13 +17,6 @@ import java.util.Map;
*/
public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
/**
* 获取组织下用户列表
*/
public static String USER_LIST_BY_ORGANIZATIONS_URL(Long orgId) {
return String.format("/api/organizations/%d/organization_users.json", orgId);
}
/**
* 获取组织团队下用户列表
*/
@ -31,22 +24,6 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
return String.format("/api/organizations/%s/teams/%d/team_users.json", orgIdentify, teamId);
}
/**
* 检查用户是否在组织下
*/
public static GitLinkRequestUrl CHECK_USER_IN_ORGANIZATION(Long orgId,String username) {
return getOpenGitLinkRequestUrl(String.format(
"/api/organizations/%d/organization_users/pm_check_user?username=%s", orgId,username
));
}
/**
* 创建组织
*/
public static GitLinkRequestUrl CREATE_ORGANIZATION() {
return getGitLinkRequestUrl("/api/organizations.json");
}
/**
* 获取或更新组织
*/
@ -54,20 +31,6 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
return getAdminGitLinkRequestUrl(String.format("/api/organizations/%d.json", gitlinkOrgId));
}
/**
* 组织下新增用户
*/
public static GitLinkRequestUrl ADD_USER_BY_ORGANIZATION(String orgIdentifier, Long teamId) {
return getGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users.json", orgIdentifier, teamId));
}
/**
* 组织下删除用户
*/
public static GitLinkRequestUrl DELETE_USER_BY_ORGANIZATION(String orgIdentifier, Long teamId, String username) {
return getGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users/%s.json", orgIdentifier, teamId, username));
}
/**
* 查询组织下团队列表
*/
@ -86,28 +49,28 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
* 创建组织团队
*/
public static GitLinkRequestUrl CREATE_ORGANIZATION_TEAM(String orgIdentifier) {
return getGitLinkRequestUrl(String.format("/api/organizations/%s/teams.json", orgIdentifier));
return getAdminGitLinkRequestUrl(String.format("/api/organizations/%s/teams.json", orgIdentifier));
}
/**
* 添加用户到组织团队重复添加不会报错
*/
public static GitLinkRequestUrl ADD_USER_TO_ORGANIZATION_TEAM(String orgIdentifier, Long teamId) {
return getGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users.json", orgIdentifier, teamId));
return getAdminGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users.json", orgIdentifier, teamId));
}
/**
* 从gitlink组织中移除用户
*/
public static GitLinkRequestUrl DELETE_USER_FROM_ORGANIZATION_TEAM(String orgIdentifier, Long teamId, String username) {
return getGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users/%s.json", orgIdentifier, teamId, username));
return getAdminGitLinkRequestUrl(String.format("/api/organizations/%s/teams/%d/team_users/%s.json", orgIdentifier, teamId, username));
}
/**
* 删除组织团队
*/
public static GitLinkRequestUrl DELETE_ORGANIZATION_TEAM(Long orgId, Long teamId) {
return getGitLinkRequestUrl(String.format("/api/organizations/%d/teams/%d.json", orgId, teamId));
return getAdminGitLinkRequestUrl(String.format("/api/organizations/%d/teams/%d.json", orgId, teamId));
}
/**
@ -119,15 +82,6 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
));
}
/**
* 通过gitlink用户id获取gitlink用户信息
*/
public static GitLinkRequestUrl GET_USER_INFO_BY_ID(Long gitLinkUserId) {
return getOpenGitLinkRequestUrl(String.format(
"/api/users/%s.json", gitLinkUserId
));
}
/**
* 获取仓库详情
*/
@ -168,15 +122,6 @@ public class PmsGitLinkRequestUrl extends GitLinkRequestUrl {
return getGitLinkRequestUrl(buildUri("/api/pm/issues/tags", params));
}
/**
* 获取仓库中issue标记
*/
public static GitLinkRequestUrl GET_REPO_ISSUE_TAGS(String owner, String repo) {
return getGitLinkRequestUrl(String.format(
"/api/v1/%s/%s/issue_tags?only_name=true", owner, repo
));
}
public static GitLinkRequestUrl GET_BRANCHES_BY_REPO_ID(String owner, String repo) {
return getGitLinkRequestUrl(String.format(
"/api/%s/%s/branches.json", owner, repo