Select Git revision
vorgang.service.spec.ts
RootModelAssembler.java 2.17 KiB
/*
* Copyright (c) 2024. Das Land Schleswig-Holstein vertreten durch das Ministerium für Energiewende, Klimaschutz, Umwelt und Natur
* Zentrales IT-Management
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.admin;
import de.ozgcloud.admin.common.user.CurrentUserHelper;
import de.ozgcloud.admin.common.user.UserRole;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestProperties;
import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.server.RepresentationModelAssembler;
import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
import org.springframework.stereotype.Component;
import lombok.RequiredArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Component
@RequiredArgsConstructor
public class RootModelAssembler implements RepresentationModelAssembler<Root, EntityModel<Root>> {
static final String REL_CONFIGURATION = "configuration";
private final RepositoryRestProperties restProperties;
@Override
public EntityModel<Root> toModel(Root root) {
var rootLink = WebMvcLinkBuilder.linkTo(RootController.class);
var configLink = Link.of(
rootLink.toUriComponentsBuilder().replacePath(restProperties.getBasePath()).toUriString(),
REL_CONFIGURATION
);
List<Link> links = new ArrayList<>();
links.add(rootLink.withSelfRel());
if (CurrentUserHelper.hasRole(UserRole.ADMIN_USER)) {
links.add(configLink);
}
return EntityModel.of(
root,
links);
}
}