![JAR search and dependency download from the Maven repository](/logo.png)
dev.dsf.fhir.authorization.MeasureAuthorizationRule Maven / Gradle / Ivy
package dev.dsf.fhir.authorization;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import org.hl7.fhir.r4.model.Measure;
import dev.dsf.common.auth.conf.Identity;
import dev.dsf.fhir.authentication.OrganizationProvider;
import dev.dsf.fhir.authorization.read.ReadAccessHelper;
import dev.dsf.fhir.dao.MeasureDao;
import dev.dsf.fhir.dao.provider.DaoProvider;
import dev.dsf.fhir.help.ParameterConverter;
import dev.dsf.fhir.service.ReferenceResolver;
public class MeasureAuthorizationRule extends AbstractMetaTagAuthorizationRule
{
public MeasureAuthorizationRule(DaoProvider daoProvider, String serverBase, ReferenceResolver referenceResolver,
OrganizationProvider organizationProvider, ReadAccessHelper readAccessHelper,
ParameterConverter parameterConverter)
{
super(Measure.class, daoProvider, serverBase, referenceResolver, organizationProvider, readAccessHelper,
parameterConverter);
}
@Override
protected Optional newResourceOkForCreate(Connection connection, Identity identity, Measure newResource)
{
return newResourceOk(connection, newResource);
}
@Override
protected Optional newResourceOkForUpdate(Connection connection, Identity identity, Measure newResource)
{
return newResourceOk(connection, newResource);
}
private Optional newResourceOk(Connection connection, Measure newResource)
{
List errors = new ArrayList<>();
if (!hasValidReadAccessTag(connection, newResource))
{
errors.add("Measure is missing valid read access tag");
}
if (errors.isEmpty())
return Optional.empty();
else
return Optional.of(errors.stream().collect(Collectors.joining(", ")));
}
@Override
protected boolean resourceExists(Connection connection, Measure newResource)
{
// no unique criteria for Measure
return false;
}
@Override
protected boolean modificationsOk(Connection connection, Measure oldResource, Measure newResource)
{
// no unique criteria for Measure
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy