@Produces, @Consumes, @RequiresProvilege, @AuthorizedRequired and @Transactional annotations for ConfigurationApi

Former-commit-id: 31aa92f6ee
restapi
Jens Pelzetter 2020-06-20 16:49:43 +02:00
parent 5f31e4ff45
commit 4a64d03056
1 changed files with 19 additions and 1 deletions

View File

@ -23,7 +23,9 @@ import org.apache.logging.log4j.Logger;
import org.libreccm.configuration.ConfigurationInfo; import org.libreccm.configuration.ConfigurationInfo;
import org.libreccm.configuration.ConfigurationManager; import org.libreccm.configuration.ConfigurationManager;
import org.libreccm.configuration.SettingInfo; import org.libreccm.configuration.SettingInfo;
import org.libreccm.core.CoreConstants;
import org.libreccm.l10n.LocalizedString; import org.libreccm.l10n.LocalizedString;
import org.libreccm.security.RequiresPrivilege;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -36,11 +38,15 @@ import java.util.stream.Collectors;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
import javax.inject.Inject; import javax.inject.Inject;
import javax.json.JsonValue; import javax.json.JsonValue;
import javax.transaction.Transactional;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.PUT; import javax.ws.rs.PUT;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.PathParam; import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException; import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
/** /**
@ -76,6 +82,9 @@ public class ConfigurationApi {
@GET @GET
@Path("/") @Path("/")
@Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public List<ConfigurationInfo> getConfigurations() { public List<ConfigurationInfo> getConfigurations() {
return confManager return confManager
.findAllConfigurations() .findAllConfigurations()
@ -86,6 +95,9 @@ public class ConfigurationApi {
@GET @GET
@Path("/{confName}") @Path("/{confName}")
@Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public ConfigurationInfo getConfiguration( public ConfigurationInfo getConfiguration(
@PathParam("confName") final String confName @PathParam("confName") final String confName
) { ) {
@ -112,7 +124,9 @@ public class ConfigurationApi {
@GET @GET
@Path("/{confName}/{setting}") @Path("/{confName}/{setting}")
@SuppressWarnings("unchecked") @Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public Object getSetting( public Object getSetting(
@PathParam("confName") final String confName, @PathParam("confName") final String confName,
@PathParam("setting") final String setting @PathParam("setting") final String setting
@ -171,6 +185,10 @@ public class ConfigurationApi {
@PUT @PUT
@Path("/{confName}/{setting}") @Path("/{confName}/{setting}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public Response updateSetting( public Response updateSetting(
@PathParam("confName") final String confName, @PathParam("confName") final String confName,
@PathParam("setting") final String setting, @PathParam("setting") final String setting,