From f64f7b9d12afc4c90142dc0eacbf4b3cfad4063b Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 10 Mar 2023 21:31:12 +0530 Subject: [PATCH] api: userdata api access (#7319) Signed-off-by: Abhishek Kumar --- .../user/userdata/DeleteUserDataCmd.java | 18 +++++++------ .../userdata/LinkUserDataToTemplateCmd.java | 13 +++++---- .../user/userdata/ListUserDataCmd.java | 11 ++++---- .../user/userdata/RegisterUserDataCmd.java | 27 ++++++++++--------- 4 files changed, 39 insertions(+), 30 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/DeleteUserDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/DeleteUserDataCmd.java index f527d575979..d27b90f07a1 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/DeleteUserDataCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/DeleteUserDataCmd.java @@ -16,25 +16,27 @@ // under the License. package org.apache.cloudstack.api.command.user.userdata; -import com.cloud.user.Account; -import com.cloud.user.UserData; -import org.apache.cloudstack.api.ApiErrorCode; -import org.apache.cloudstack.api.ServerApiException; -import org.apache.cloudstack.api.response.UserDataResponse; -import org.apache.log4j.Logger; - +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; +import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.response.DomainResponse; import org.apache.cloudstack.api.response.ProjectResponse; import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.api.response.UserDataResponse; import org.apache.cloudstack.context.CallContext; +import org.apache.log4j.Logger; + +import com.cloud.user.Account; +import com.cloud.user.UserData; @APICommand(name = "deleteUserData", description = "Deletes a userdata", responseObject = SuccessResponse.class, entityType = {UserData.class}, - requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18") + requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18", + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) public class DeleteUserDataCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteUserDataCmd.class.getName()); diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/LinkUserDataToTemplateCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/LinkUserDataToTemplateCmd.java index 80044e11c53..be1a95c3694 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/LinkUserDataToTemplateCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/LinkUserDataToTemplateCmd.java @@ -17,10 +17,7 @@ package org.apache.cloudstack.api.command.user.userdata; -import com.cloud.template.VirtualMachineTemplate; -import com.cloud.user.Account; -import com.cloud.user.UserData; -import com.cloud.utils.exception.CloudRuntimeException; +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiErrorCode; @@ -33,8 +30,14 @@ import org.apache.cloudstack.api.response.TemplateResponse; import org.apache.cloudstack.api.response.UserDataResponse; import org.apache.log4j.Logger; +import com.cloud.template.VirtualMachineTemplate; +import com.cloud.user.Account; +import com.cloud.user.UserData; +import com.cloud.utils.exception.CloudRuntimeException; + @APICommand(name = "linkUserDataToTemplate", description = "Link or unlink a userdata to a template.", responseObject = TemplateResponse.class, responseView = ResponseObject.ResponseView.Restricted, - requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18.0") + requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18.0", + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) public class LinkUserDataToTemplateCmd extends BaseCmd implements AdminCmd { public static final Logger s_logger = Logger.getLogger(LinkUserDataToTemplateCmd.class.getName()); diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/ListUserDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/ListUserDataCmd.java index a203043646e..aa30066c2a3 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/ListUserDataCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/ListUserDataCmd.java @@ -19,20 +19,21 @@ package org.apache.cloudstack.api.command.user.userdata; import java.util.ArrayList; import java.util.List; -import com.cloud.user.UserData; -import org.apache.cloudstack.api.response.UserDataResponse; -import org.apache.log4j.Logger; - +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.BaseListProjectAndAccountResourcesCmd; import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.response.ListResponse; +import org.apache.cloudstack.api.response.UserDataResponse; +import org.apache.log4j.Logger; +import com.cloud.user.UserData; import com.cloud.utils.Pair; @APICommand(name = "listUserData", description = "List registered userdatas", responseObject = UserDataResponse.class, entityType = {UserData.class}, - requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18") + requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.18", + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) public class ListUserDataCmd extends BaseListProjectAndAccountResourcesCmd { public static final Logger s_logger = Logger.getLogger(ListUserDataCmd.class.getName()); diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterUserDataCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterUserDataCmd.java index 3e513efeef6..a8a87c40725 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterUserDataCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/userdata/RegisterUserDataCmd.java @@ -16,14 +16,11 @@ // under the License. package org.apache.cloudstack.api.command.user.userdata; -import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientCapacityException; -import com.cloud.exception.InvalidParameterValueException; -import com.cloud.exception.NetworkRuleConflictException; -import com.cloud.exception.ResourceAllocationException; -import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.NetworkModel; -import com.cloud.user.UserData; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.apache.cloudstack.acl.RoleType; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.BaseCmd; @@ -37,16 +34,22 @@ import org.apache.cloudstack.context.CallContext; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.InvalidParameterValueException; +import com.cloud.exception.NetworkRuleConflictException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.NetworkModel; +import com.cloud.user.UserData; @APICommand(name = "registerUserData", description = "Register a new userdata.", since = "4.18", responseObject = SuccessResponse.class, requestHasSensitiveInfo = false, - responseHasSensitiveInfo = false) + responseHasSensitiveInfo = false, + authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) public class RegisterUserDataCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(RegisterUserDataCmd.class.getName());