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

Jens Pelzetter 2020-06-20 16:49:43 +02:00
parent 98f5d3201b
commit 31aa92f6ee
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.ConfigurationManager;
import org.libreccm.configuration.SettingInfo;
import org.libreccm.core.CoreConstants;
import org.libreccm.l10n.LocalizedString;
import org.libreccm.security.RequiresPrivilege;
import java.lang.reflect.Field;
import java.math.BigDecimal;
@ -36,11 +38,15 @@ import java.util.stream.Collectors;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.json.JsonValue;
import javax.transaction.Transactional;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
@ -76,6 +82,9 @@ public class ConfigurationApi {
@GET
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public List<ConfigurationInfo> getConfigurations() {
return confManager
.findAllConfigurations()
@ -86,6 +95,9 @@ public class ConfigurationApi {
@GET
@Path("/{confName}")
@Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public ConfigurationInfo getConfiguration(
@PathParam("confName") final String confName
) {
@ -112,7 +124,9 @@ public class ConfigurationApi {
@GET
@Path("/{confName}/{setting}")
@SuppressWarnings("unchecked")
@Produces(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public Object getSetting(
@PathParam("confName") final String confName,
@PathParam("setting") final String setting
@ -171,6 +185,10 @@ public class ConfigurationApi {
@PUT
@Path("/{confName}/{setting}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
@Transactional(Transactional.TxType.REQUIRED)
public Response updateSetting(
@PathParam("confName") final String confName,
@PathParam("setting") final String setting,