diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssembler.java
index e25e5262112fa8d243bc9019d499ceae874db313..cdcc60be022212764463013dd956efa906508806 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssembler.java
@@ -39,6 +39,7 @@ import de.ozgcloud.alfa.common.CollectionModelBuilder;
 import de.ozgcloud.alfa.common.ModelBuilder;
 import de.ozgcloud.alfa.common.command.CommandController;
 import de.ozgcloud.alfa.vorgang.VorgangController;
+import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
 import lombok.RequiredArgsConstructor;
 
 @Component
@@ -59,19 +60,19 @@ class CollaborationModelAssembler implements RepresentationModelAssembler<Collab
 	}
 
 	public CollectionModel<EntityModel<Collaboration>> toCollectionModel(Stream<? extends Collaboration> entities, String vorgangId) {
+		var vorgang = vorgangController.getVorgang(vorgangId);
 		var entityModels = entities.map(this::toModel).toList();
 
 		var selfLink = linkTo(methodOn(CollaborationByVorgangController.class).getAllByVorgangId(vorgangId)).withSelfRel();
 
 		return CollectionModelBuilder.fromEntities(entityModels)
 				.addLink(selfLink)
-				.ifMatch(entityModels::isEmpty)
-				.addLink(() -> buildCreateCollaborationRequestLink(vorgangId))
+				.ifMatch(() -> entityModels.isEmpty() && vorgangController.isEditable(vorgang))
+				.addLink(() -> buildCreateCollaborationRequestLink(vorgang))
 				.buildModel();
 	}
 
-	Link buildCreateCollaborationRequestLink(String vorgangId) {
-		var vorgang = vorgangController.getVorgang(vorgangId);
+	Link buildCreateCollaborationRequestLink(VorgangWithEingang vorgang) {
 		return linkTo(methodOn(CommandController.CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(),
 				vorgang.getVersion(), null)).withRel(REL_CREATE_COLLABORATION_REQUEST);
 	}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/export/ExportVorgangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/export/ExportVorgangProcessor.java
index 389f6d3d74d1b1d7e270809fabbe1f167e14fff3..33e5c38b351cb727281233dd7b9e9a26d88acc55 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/export/ExportVorgangProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/export/ExportVorgangProcessor.java
@@ -36,6 +36,7 @@ import org.springframework.stereotype.Component;
 import de.ozgcloud.alfa.common.ModelBuilder;
 import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import de.ozgcloud.alfa.vorgang.VorgangController;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
 import lombok.RequiredArgsConstructor;
 
@@ -49,6 +50,7 @@ class ExportVorgangProcessor implements RepresentationModelProcessor<EntityModel
 	static final LinkRelation REL_ARCHIVE = LinkRelation.of("archive");
 
 	private final DmsProperties dmsProperties;
+	private final VorgangController vorgangController;
 
 	@Override
 	public EntityModel<VorgangWithEingang> process(EntityModel<VorgangWithEingang> model) {
@@ -59,9 +61,9 @@ class ExportVorgangProcessor implements RepresentationModelProcessor<EntityModel
 		}
 
 		return ModelBuilder.fromModel(model)
-				.ifMatch(IS_VORGANG_ABGESCHLOSSEN)
+				.ifMatch(IS_VORGANG_ABGESCHLOSSEN.and(vorgangController::isEditable))
 				.addLink(linkTo(methodOn(ExportVorgangController.class).exportVorgang(vorgang.getId())).withRel(REL_EXPORT))
-				.ifMatch(IS_VORGANG_ABGESCHLOSSEN.and(isDmsEnabled()))
+				.ifMatch(IS_VORGANG_ABGESCHLOSSEN.and(isDmsEnabled()).and(vorgangController::isEditable))
 				.addLink(linkTo(methodOn(CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(), vorgang.getVersion(),
 						null)).withRel(REL_ARCHIVE))
 				.buildModel();
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungVorgangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungVorgangProcessor.java
index 61bc5ec641fa9e92ccd5bc15af397a8835ef5864..5281c140049b6c730996d7243ae76b3e0a3ec408 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungVorgangProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungVorgangProcessor.java
@@ -29,7 +29,6 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.Link;
 import org.springframework.hateoas.LinkRelation;
@@ -43,8 +42,11 @@ import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.loeschanforderung.LoeschAnforderungController.LoeschAnforderungByVorgangController;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import de.ozgcloud.alfa.vorgang.VorgangController;
+import lombok.RequiredArgsConstructor;
 
 @Component
+@RequiredArgsConstructor
 class LoeschAnforderungVorgangProcessor implements RepresentationModelProcessor<EntityModel<? extends Vorgang>> {
 
 	static final LinkRelation REL_LOESCHEN_ANFORDERN = LinkRelation.of("loeschen_anfordern");
@@ -53,11 +55,9 @@ class LoeschAnforderungVorgangProcessor implements RepresentationModelProcessor<
 	static final List<String> USER_ROLES_ALLOWED_TO_LOESCHEN_ANFORDERN = List.of(UserRole.VERWALTUNG_USER, UserRole.EINHEITLICHER_ANSPRECHPARTNER);
 	static final List<VorgangStatus> VORGANG_STATUSES_ALLOWED_TO_LOESCHEN_ANFORDERN = List.of(VorgangStatus.VERWORFEN, VorgangStatus.ABGESCHLOSSEN);
 
-	@Autowired
-	private LoeschAnforderungService service;
-
-	@Autowired
-	private CurrentUserService currentUserService;
+	private final LoeschAnforderungService service;
+	private final CurrentUserService currentUserService;
+	private final VorgangController vorgangController;
 
 	@Override
 	public EntityModel<? extends Vorgang> process(EntityModel<? extends Vorgang> model) {
@@ -77,7 +77,7 @@ class LoeschAnforderungVorgangProcessor implements RepresentationModelProcessor<
 	}
 
 	boolean isLoeschenAnfordernAllowed(Vorgang vorgang) {
-		return isAllowedStatus(vorgang) && isAllowedUserRole();
+		return isAllowedStatus(vorgang) && isAllowedUserRole() && vorgangController.isEditable(vorgang);
 	}
 
 	private boolean isAllowedStatus(Vorgang vorgang) {
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java
index 92b0c1d2f7d251bdcb0f6dc657074a9128757794..3b6facda1bdca1ad3dd53fa54f250e4df2cbda93 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java
@@ -214,7 +214,7 @@ public class VorgangController {
 		return handleGetAllRequest(requestCriteria);
 	}
 
-	public boolean isEditable(VorgangWithEingang vorgang) {
-		return vorgangService.isEditable(vorgang);
+	public boolean isEditable(Vorgang vorgang) {
+		return vorgangService.isVorgangEditable(vorgang);
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
index ae555e7fbcf0b33a7cb0c6ee926ae307efe29edd..47c76b1574946937db404c0342d93411f029cc6d 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
@@ -148,13 +148,6 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
 
 	boolean isAssigneable(Vorgang vorgang) {
 		return (userService.hasRole(UserRole.VERWALTUNG_USER) || userService.hasRole(UserRole.VERWALTUNG_POSTSTELLE))
-				&& isEditable(vorgang);
-	}
-
-	boolean isEditable(Vorgang vorgang) {
-		var vorgangWithEingang = vorgang instanceof VorgangWithEingang ?
-				(VorgangWithEingang) vorgang :
-				vorgangService.findVorgangWithEingang(vorgang.getId());
-		return vorgangService.isEditable(vorgangWithEingang);
+				&& vorgangService.isVorgangEditable(vorgang);
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
index caa2b0ac44c99fd6b904a3f7f8d940e70a651788..cb9bb12fbd8121227543a03eb95a7b38b4b2e0e0 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
@@ -98,7 +98,14 @@ class VorgangService {
 		return userService.getUser().getOrganisationseinheitIds();
 	}
 
-	public boolean isEditable(VorgangWithEingang vorgang) {
+	public boolean isVorgangEditable(Vorgang vorgang) {
+		var vorgangWithEingang = vorgang instanceof VorgangWithEingang ?
+				(VorgangWithEingang) vorgang :
+				findVorgangWithEingang(vorgang.getId());
+		return isVorgangWithEingangEditable(vorgangWithEingang);
+	}
+
+	boolean isVorgangWithEingangEditable(VorgangWithEingang vorgang) {
 		return vorgang.getStatus() != VorgangStatus.ZU_LOESCHEN && (vorgang.getHeader() == null || !vorgang.getHeader().isLocked());
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessor.java
index 0689b7860ea757b8901c4297d75425a15d4a5178..75b537da45bf69aaafece14961ba5db974837cfd 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessor.java
@@ -27,7 +27,6 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
 
 import java.util.Objects;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.LinkRelation;
 import org.springframework.hateoas.server.RepresentationModelProcessor;
@@ -38,8 +37,11 @@ import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import de.ozgcloud.alfa.vorgang.VorgangController;
+import lombok.RequiredArgsConstructor;
 
 @Component
+@RequiredArgsConstructor
 class VorgangCommandProcessor implements RepresentationModelProcessor<EntityModel<? extends Vorgang>> {
 
 	static final LinkRelation REL_VORGANG_ANNEHMEN = LinkRelation.of("annehmen");
@@ -51,14 +53,14 @@ class VorgangCommandProcessor implements RepresentationModelProcessor<EntityMode
 	static final LinkRelation REL_VORGANG_ABSCHLIESSEN = LinkRelation.of("abschliessen");
 	static final LinkRelation REL_VORGANG_WIEDEREROEFFNEN = LinkRelation.of("wiedereroeffnen");
 
-	@Autowired
-	private CurrentUserService userService;
+	private final CurrentUserService userService;
+	private final VorgangController vorgangController;
 
 	@Override
 	public EntityModel<? extends Vorgang> process(EntityModel<? extends Vorgang> model) {
 		var vorgang = model.getContent();
 
-		if (Objects.isNull(vorgang)) {
+		if (Objects.isNull(vorgang) || !vorgangController.isEditable(vorgang)) {
 			return model;
 		}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
index 42136dd1f808fbbdbacf43e24f51a9072597f712..3f4db275292b754887a4287662e537e5fba55284 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/CollaborationModelAssemblerTest.java
@@ -115,11 +115,25 @@ class CollaborationModelAssemblerTest {
 
 	@Nested
 	class TestToCollectionModel {
+
 		private final Collaboration collaboration = FachstelleCollaborationTestFactory.create();
+		private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create();
+
+		@BeforeEach
+		void mockVorgangController() {
+			when(vorgangController.getVorgang(VorgangHeaderTestFactory.ID)).thenReturn(vorgang);
+		}
 
 		@Nested
 		class OnNonEmptyCollaborationList {
 
+			@Test
+			void shouldGetVorgang() {
+				callAssembler();
+
+				verify(vorgangController).getVorgang(VorgangHeaderTestFactory.ID);
+			}
+
 			@Test
 			void shouldCallToModel() {
 				callAssembler();
@@ -160,12 +174,11 @@ class CollaborationModelAssemblerTest {
 		@Nested
 		class OnEmptyCollaborationList {
 
-			@Mock
-			private Link createCollaborationRequestLink;
+			@Test
+			void shouldGetVorgang() {
+				callAssembler();
 
-			@BeforeEach
-			void mock() {
-				doReturn(createCollaborationRequestLink).when(assembler).buildCreateCollaborationRequestLink(VorgangHeaderTestFactory.ID);
+				verify(vorgangController).getVorgang(VorgangHeaderTestFactory.ID);
 			}
 
 			@Test
@@ -183,11 +196,40 @@ class CollaborationModelAssemblerTest {
 						.isEqualTo(CollaborationByVorgangController.PATH + "/" + VorgangHeaderTestFactory.ID + "/collaborations");
 			}
 
-			@Test
-			void shouldHaveCreateCollaborationRequestLink() {
-				var collectionModel = callAssembler();
+			@Nested
+			class OnVorgangIsEditable {
+
+				@Mock
+				private Link createCollaborationRequestLink;
 
-				assertThat(collectionModel.getLinks()).contains(createCollaborationRequestLink);
+				@BeforeEach
+				void mock() {
+					when(vorgangController.isEditable(vorgang)).thenReturn(true);
+					doReturn(createCollaborationRequestLink).when(assembler).buildCreateCollaborationRequestLink(vorgang);
+				}
+
+				@Test
+				void shouldHaveCreateCollaborationRequestLink() {
+					var collectionModel = callAssembler();
+
+					assertThat(collectionModel.getLinks()).contains(createCollaborationRequestLink);
+				}
+			}
+
+			@Nested
+			class OnVorgangIsNotEditable {
+
+				@BeforeEach
+				void mock() {
+					when(vorgangController.isEditable(vorgang)).thenReturn(false);
+				}
+
+				@Test
+				void shouldNotHaveCreateCollaborationRequestLink() {
+					var collectionModel = callAssembler();
+
+					assertThat(collectionModel.getLink(CollaborationModelAssembler.REL_CREATE_COLLABORATION_REQUEST)).isEmpty();
+				}
 			}
 
 			private CollectionModel<EntityModel<Collaboration>> callAssembler() {
@@ -201,18 +243,6 @@ class CollaborationModelAssemblerTest {
 
 		private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create();
 
-		@BeforeEach
-		void mockVorgangController() {
-			when(vorgangController.getVorgang(VorgangHeaderTestFactory.ID)).thenReturn(vorgang);
-		}
-
-		@Test
-		void shouldCallVorgangController() {
-			callAssembler();
-
-			verify(vorgangController).getVorgang(VorgangHeaderTestFactory.ID);
-		}
-
 		@Test
 		void shouldHaveHrefToCreateCommand() {
 			var expectedHref = UriTemplate.of(CommandByRelationController.COMMAND_BY_RELATION_PATH)
@@ -231,7 +261,7 @@ class CollaborationModelAssemblerTest {
 		}
 
 		private Link callAssembler() {
-			return assembler.buildCreateCollaborationRequestLink(VorgangHeaderTestFactory.ID);
+			return assembler.buildCreateCollaborationRequestLink(vorgang);
 		}
 	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/export/ExportVorgangProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/export/ExportVorgangProcessorTest.java
index ec98e12ec747bf427defdd422de446e66cbc9c01..756653dc959487e3fcc444bc110304ca08477e4e 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/export/ExportVorgangProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/export/ExportVorgangProcessorTest.java
@@ -42,6 +42,7 @@ import org.springframework.hateoas.UriTemplate;
 import de.ozgcloud.alfa.common.UserProfileUrlProvider;
 import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import de.ozgcloud.alfa.vorgang.VorgangController;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory;
@@ -52,6 +53,8 @@ class ExportVorgangProcessorTest {
 	private ExportVorgangProcessor processor;
 	@Mock
 	private DmsProperties dmsProperties;
+	@Mock
+	private VorgangController vorgangController;
 
 	private final UserProfileUrlProvider urlProvider = new UserProfileUrlProvider();
 
@@ -68,8 +71,9 @@ class ExportVorgangProcessorTest {
 		class TestExportLink {
 
 			@Test
-			void shouldAddLinkWhenVorgangIsAbgeschlossen() {
+			void shouldAddLink() {
 				var vorgang = vorgangInStatus(VorgangStatus.ABGESCHLOSSEN);
+				givenVorgangIsEditable(vorgang);
 
 				var model = processor.process(EntityModel.of(vorgang));
 
@@ -86,6 +90,16 @@ class ExportVorgangProcessorTest {
 
 				assertThat(model.getLink(ExportVorgangProcessor.REL_EXPORT)).isEmpty();
 			}
+
+			@Test
+			void shouldNotAddLinkWhenVorgangIsNotEditable() {
+				var vorgang = vorgangInStatus(VorgangStatus.ABGESCHLOSSEN);
+				givenVorgangIsNotEditable(vorgang);
+
+				var model = processor.process(EntityModel.of(vorgang));
+
+				assertThat(model.getLink(ExportVorgangProcessor.REL_EXPORT)).isEmpty();
+			}
 		}
 
 		@Nested
@@ -95,6 +109,7 @@ class ExportVorgangProcessorTest {
 			void shouldAddLink() {
 				givenDmsIsEnabled();
 				var vorgang = vorgangInStatus(VorgangStatus.ABGESCHLOSSEN);
+				givenVorgangIsEditable(vorgang);
 
 				var model = processor.process(EntityModel.of(vorgang));
 
@@ -123,6 +138,17 @@ class ExportVorgangProcessorTest {
 				assertThat(model.getLink(ExportVorgangProcessor.REL_ARCHIVE)).isEmpty();
 			}
 
+			@Test
+			void shouldNotAddLinkWhenVorgangIsNotEditable() {
+				givenDmsIsEnabled();
+				var vorgang = vorgangInStatus(VorgangStatus.ABGESCHLOSSEN);
+				givenVorgangIsNotEditable(vorgang);
+
+				var model = processor.process(EntityModel.of(vorgang));
+
+				assertThat(model.getLink(ExportVorgangProcessor.REL_ARCHIVE)).isEmpty();
+			}
+
 			void givenDmsIsEnabled() {
 				when(dmsProperties.isEnabled()).thenReturn(true);
 			}
@@ -132,6 +158,14 @@ class ExportVorgangProcessorTest {
 			}
 		}
 
+		void givenVorgangIsEditable(VorgangWithEingang vorgang) {
+			when(vorgangController.isEditable(vorgang)).thenReturn(true);
+		}
+
+		void givenVorgangIsNotEditable(VorgangWithEingang vorgang) {
+			when(vorgangController.isEditable(vorgang)).thenReturn(false);
+		}
+
 		private VorgangWithEingang vorgangInStatus(VorgangStatus status) {
 			return VorgangWithEingangTestFactory.createBuilder().status(status).build();
 		}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java
index 67652e83e4e54afb151fe34d79815b55c50a9f61..ba6f94d6a7ba3f5518b8b371b8a1d346161afb94 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java
@@ -905,19 +905,19 @@ class VorgangControllerTest {
 	@Nested
 	class TestIsEditable {
 
-		private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create();
+		private final Vorgang vorgang = VorgangWithEingangTestFactory.create();
 
 		@Test
 		void shouldCallService() {
 			controller.isEditable(vorgang);
 
-			verify(vorgangService).isEditable(vorgang);
+			verify(vorgangService).isVorgangEditable(vorgang);
 		}
 
 		@ParameterizedTest
 		@ValueSource(booleans = {true, false})
 		void shouldReturnServiceResult(boolean serviceResult) {
-			when(vorgangService.isEditable(vorgang)).thenReturn(serviceResult);
+			when(vorgangService.isVorgangEditable(vorgang)).thenReturn(serviceResult);
 
 			var editable = controller.isEditable(vorgang);
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangModelAssemblerTest.java
index 3a8b5c7335a1c2caa7886678b9e21cc7fde36055..94ae793fbbe99920ac5cb16dc8551675ecd9b93d 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangModelAssemblerTest.java
@@ -37,8 +37,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
@@ -397,7 +395,7 @@ class VorgangModelAssemblerTest {
 
 			modelAssembler.isAssigneable(vorgang);
 
-			verify(modelAssembler).isEditable(vorgang);
+			verify(vorgangService).isVorgangEditable(vorgang);
 		}
 
 		@Test
@@ -463,74 +461,11 @@ class VorgangModelAssemblerTest {
 		}
 
 		private void givenVorgangIsEditable() {
-			doReturn(true).when(modelAssembler).isEditable(vorgang);
+			doReturn(true).when(vorgangService).isVorgangEditable(vorgang);
 		}
 
 		private void givenVorgangIsNotEditable() {
-			doReturn(false).when(modelAssembler).isEditable(vorgang);
-		}
-	}
-
-	@Nested
-	class IsEditable {
-
-		@Nested
-		class OnIsVorgangWithEingang {
-
-			private final VorgangWithEingang vorgangWithEingang = VorgangWithEingangTestFactory.create();
-
-			@Test
-			void shouldCheckIfVorgangIsEditable() {
-				modelAssembler.isEditable(vorgangWithEingang);
-
-				verify(vorgangService).isEditable(vorgangWithEingang);
-			}
-
-			@ParameterizedTest
-			@ValueSource(booleans = { true, false })
-			void shouldReturnCheckResult(boolean checkResult) {
-				when(vorgangService.isEditable(vorgangWithEingang)).thenReturn(checkResult);
-
-				var editable = modelAssembler.isEditable(vorgangWithEingang);
-
-				assertThat(editable).isEqualTo(checkResult);
-			}
-		}
-
-		@Nested
-		class OnIsNotVorgangWithEingang {
-
-			private final Vorgang vorgang = VorgangHeaderTestFactory.create();
-			private final VorgangWithEingang vorgangWithEingang = VorgangWithEingangTestFactory.create();
-
-			@BeforeEach
-			void init() {
-				when(vorgangService.findVorgangWithEingang(VorgangHeaderTestFactory.ID)).thenReturn(vorgangWithEingang);
-			}
-
-			@Test
-			void shouldFindVorgangWithEingang() {
-				modelAssembler.isEditable(vorgang);
-
-				verify(vorgangService).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
-			}
-
-			@Test
-			void shouldCheckIfVorgangIsEditable() {
-				modelAssembler.isEditable(vorgang);
-
-				verify(vorgangService).isEditable(vorgangWithEingang);
-			}
-
-			@ParameterizedTest
-			@ValueSource(booleans = { true, false })
-			void shouldReturnCheckResult(boolean checkResult) {
-				when(vorgangService.isEditable(vorgangWithEingang)).thenReturn(checkResult);
-
-				var editable = modelAssembler.isEditable(vorgang);
-
-				assertThat(editable).isEqualTo(checkResult);
-			}
+			doReturn(false).when(vorgangService).isVorgangEditable(vorgang);
 		}
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
index d2ecbd722e0e28c1d628366d7a1f6a1c57466107..fa26b153010675a2873b292c5ae8716e90ce3f98 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
@@ -35,6 +35,7 @@ import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.EnumSource;
+import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
@@ -336,7 +337,70 @@ class VorgangServiceTest {
 	}
 
 	@Nested
-	class TestIsEditable {
+	class TestIsVorgangEditable {
+
+		@Nested
+		class OnIsVorgangWithEingang {
+
+			private final VorgangWithEingang vorgangWithEingang = VorgangWithEingangTestFactory.create();
+
+			@Test
+			void shouldCheckIfVorgangIsEditable() {
+				service.isVorgangEditable(vorgangWithEingang);
+
+				verify(service).isVorgangWithEingangEditable(vorgangWithEingang);
+			}
+
+			@ParameterizedTest
+			@ValueSource(booleans = { true, false })
+			void shouldReturnCheckResult(boolean checkResult) {
+				when(service.isVorgangWithEingangEditable(vorgangWithEingang)).thenReturn(checkResult);
+
+				var editable = service.isVorgangEditable(vorgangWithEingang);
+
+				assertThat(editable).isEqualTo(checkResult);
+			}
+		}
+
+		@Nested
+		class OnIsNotVorgangWithEingang {
+
+			private final Vorgang vorgang = VorgangHeaderTestFactory.create();
+			private final VorgangWithEingang vorgangWithEingang = VorgangWithEingangTestFactory.create();
+
+			@BeforeEach
+			void init() {
+				doReturn(vorgangWithEingang).when(service).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
+			}
+
+			@Test
+			void shouldFindVorgangWithEingang() {
+				service.isVorgangEditable(vorgang);
+
+				verify(service).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
+			}
+
+			@Test
+			void shouldCheckIfVorgangIsEditable() {
+				service.isVorgangEditable(vorgang);
+
+				verify(service).isVorgangWithEingangEditable(vorgangWithEingang);
+			}
+
+			@ParameterizedTest
+			@ValueSource(booleans = { true, false })
+			void shouldReturnCheckResult(boolean checkResult) {
+				when(service.isVorgangWithEingangEditable(vorgangWithEingang)).thenReturn(checkResult);
+
+				var editable = service.isVorgangEditable(vorgang);
+
+				assertThat(editable).isEqualTo(checkResult);
+			}
+		}
+	}
+
+	@Nested
+	class TestIsVorgangWithEingangEditable {
 
 		@ParameterizedTest
 		@EnumSource
@@ -346,7 +410,7 @@ class VorgangServiceTest {
 					.status(status)
 					.build();
 
-			var editable = service.isEditable(vorgang);
+			var editable = service.isVorgangWithEingangEditable(vorgang);
 
 			assertThat(editable).isFalse();
 		}
@@ -358,7 +422,7 @@ class VorgangServiceTest {
 					.status(VorgangStatus.ZU_LOESCHEN)
 					.build();
 
-			var editable = service.isEditable(vorgang);
+			var editable = service.isVorgangWithEingangEditable(vorgang);
 
 			assertThat(editable).isFalse();
 		}
@@ -371,7 +435,7 @@ class VorgangServiceTest {
 					.status(status)
 					.build();
 
-			var editable = service.isEditable(vorgang);
+			var editable = service.isVorgangWithEingangEditable(vorgang);
 
 			assertThat(editable).isTrue();
 		}
@@ -384,7 +448,7 @@ class VorgangServiceTest {
 					.status(status)
 					.build();
 
-			var editable = service.isEditable(vorgang);
+			var editable = service.isVorgangWithEingangEditable(vorgang);
 
 			assertThat(editable).isTrue();
 		}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessorTest.java
index 299e8f6e5576fd74aa31370e9a1abfcdb73ec6fc..f06e3e333ce0da60213ca90f8c8af8f808a36117 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/command/VorgangCommandProcessorTest.java
@@ -46,6 +46,7 @@ import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import de.ozgcloud.alfa.vorgang.VorgangController;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
 
 class VorgangCommandProcessorTest {
@@ -59,6 +60,14 @@ class VorgangCommandProcessorTest {
 	private VorgangCommandProcessor processor;
 	@Mock
 	private CurrentUserService userService;
+	@Mock
+	private VorgangController vorgangController;
+
+	@BeforeEach
+	void init() {
+		// TODO: refactor
+		when(vorgangController.isEditable(any())).thenReturn(true);
+	}
 
 	@Nested
 	@DisplayName("add 'annehmen' link")
@@ -366,5 +375,4 @@ class VorgangCommandProcessorTest {
 	private EntityModel<Vorgang> buildVorgangInStatus(VorgangStatus status) {
 		return EntityModel.of(VorgangHeaderTestFactory.createBuilder().status(status).build());
 	}
-
 }
\ No newline at end of file