This commit is contained in:
Tonitzpp 2026-05-12 08:17:12 +01:00 committed by GitHub
commit c3c2e869eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 8 deletions

View File

@ -21,6 +21,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.projects.Project;
import org.apache.cloudstack.acl.ProjectRole;
import org.apache.cloudstack.acl.RoleType;
import org.apache.cloudstack.api.APICommand;
@ -55,7 +57,6 @@ public class ListProjectRolesCmd extends BaseListCmd {
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
public Long getProjectRoleId() { return projectRoleId; }
public Long getProjectId() {
@ -72,7 +73,15 @@ public class ListProjectRolesCmd extends BaseListCmd {
@Override
public void execute() {
List<ProjectRole> projectRoles = new ArrayList<>();
Project project = null;
if (getProjectId() != null && getProjectId() > 0) {
project = _projectService.getProject(getProjectId());
if (project == null) {
throw new InvalidParameterValueException("Failed to find project by ID.");
}
}
final String projectUuid = project != null ? project.getUuid() : null;
List<ProjectRole> projectRoles;
if (getProjectId() != null && getProjectRoleId() != null) {
projectRoles = Collections.singletonList(projRoleService.findProjectRole(getProjectRoleId(), getProjectId()));
} else if (StringUtils.isNotBlank(getRoleName())) {
@ -86,17 +95,17 @@ public class ListProjectRolesCmd extends BaseListCmd {
if (role == null) {
continue;
}
roleResponses.add(setupProjectRoleResponse(role));
roleResponses.add(setupProjectRoleResponse(role, projectUuid));
}
response.setResponses(roleResponses);
response.setResponseName(getCommandName());
setResponseObject(response);
}
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role) {
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role, final String projectUuid) {
final ProjectRoleResponse response = new ProjectRoleResponse();
response.setId(role.getUuid());
response.setProjectId(_projectService.getProject(role.getProjectId()).getUuid());
response.setProjectId(projectUuid);
response.setRoleName(role.getName());
response.setDescription(role.getDescription());
response.setObjectName("projectrole");

View File

@ -168,9 +168,9 @@ public class ProjectRoleManagerImpl extends ManagerBase implements ProjectRoleSe
@Override
public List<ProjectRole> findProjectRoles(Long projectId, String keyword) {
if (projectId == null || projectId < 1L || projectDao.findById(projectId) == null) {
logger.warn("Invalid project ID provided");
return null;
if (projectId == null) {
logger.warn("Invalid project ID provided; thus, an empty list is being returned.");
return Collections.emptyList();
}
return ListUtils.toListOfInterface(projRoleDao.findAllRoles(projectId, keyword));
}