diff --git a/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer-bearbeiten.cy.ts b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer-bearbeiten.cy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..16d99dd00ad9ae05df7bc35fb531e981f712ceeb
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer-bearbeiten.cy.ts
@@ -0,0 +1,58 @@
+import { faker } from '@faker-js/faker';
+import { BenutzerE2EComponent } from 'apps/admin-e2e/src/components/benutzer/benutzer.e2e.component';
+import { E2EBenutzerHelper } from 'apps/admin-e2e/src/helper/benutzer/benutzer.helper';
+import { E2EBenutzerVerifier } from 'apps/admin-e2e/src/helper/benutzer/benutzer.verifier';
+import { AdminUserE2E } from 'apps/admin-e2e/src/model/util';
+import { loginAsAriane } from 'apps/admin-e2e/src/support/user-util';
+
+describe('Benutzer Bearbeiten', () => {
+  const benutzerVerifier: E2EBenutzerVerifier = new E2EBenutzerVerifier();
+  const benutzerHelper: E2EBenutzerHelper = new E2EBenutzerHelper();
+  const benutzerPage: BenutzerE2EComponent = new BenutzerE2EComponent();
+
+  const userName: string = 'testtheo' + faker.string.uuid();
+  const user: AdminUserE2E = {
+    vorname: 'Theo',
+    nachname: 'Testuser',
+    username: userName,
+    email: 'theo' + faker.string.uuid() + '@ozg-sh.de',
+    isUser: true,
+    organisationseinheiten: [],
+  };
+
+  before(() => {
+    loginAsAriane();
+  });
+
+  it('should add new user', () => {
+    benutzerHelper.openNewBenutzerPage();
+    benutzerHelper.addBenutzerAndSave(user);
+  });
+
+  it('should not be able to edit username', () => {
+    benutzerHelper.openBenutzerPage(userName);
+
+    benutzerPage.getBenutzernameInput().should('not.exist');
+  });
+
+  it('should deactivate other alfa roles if "user" role is selected', () => {
+    benutzerVerifier.verifyAlfaRolesCorrectlyChecked(user);
+  });
+
+  it('should edit user', () => {
+    const editedUser: AdminUserE2E = { ...user, vorname: 'Theodor' };
+
+    benutzerHelper.editBenutzerAndSave(editedUser);
+  });
+
+  it('should check for new user name', () => {
+    benutzerHelper.openBenutzerPage(userName);
+
+    benutzerVerifier.verifyUserVorname('Theodor');
+  });
+
+  it('should delete user', () => {
+    benutzerHelper.deleteBenutzer(userName);
+    benutzerVerifier.verifyUserNotInList(userName);
+  });
+});
diff --git a/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
index 205d661f91365f4bea89867b41ae673a7f1e2c4a..d978a0cea6580068a22a4c15571d078ab56a16dc 100644
--- a/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
+++ b/alfa-client/apps/admin-e2e/src/e2e/main-tests/benutzer_rollen/benutzer_rollen.cy.ts
@@ -21,10 +21,23 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { BenutzerE2EComponent, BenutzerListE2EComponent, BenutzerListItemE2EComponent, } from 'apps/admin-e2e/src/components/benutzer/benutzer.e2e.component';
+import {
+  BenutzerE2EComponent,
+  BenutzerListE2EComponent,
+  BenutzerListItemE2EComponent,
+} from 'apps/admin-e2e/src/components/benutzer/benutzer.e2e.component';
 import { E2EBenutzerHelper } from 'apps/admin-e2e/src/helper/benutzer/benutzer.helper';
 import { OrganisationsEinheitE2E } from 'apps/admin-e2e/src/model/organisations-einheit';
-import { beChecked, beEnabled, contains, exist, mouseEnter, notBeChecked, notBeEnabled, visible, } from 'apps/admin-e2e/src/support/cypress.util';
+import {
+  beChecked,
+  beEnabled,
+  contains,
+  exist,
+  mouseEnter,
+  notBeChecked,
+  notBeEnabled,
+  visible,
+} from 'apps/admin-e2e/src/support/cypress.util';
 import { AlfaRollen, AlfaUsers, loginAsAriane } from 'apps/admin-e2e/src/support/user-util';
 
 describe('Benutzer und Rollen', () => {
diff --git a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.executor.ts b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.executor.ts
index f0ed339c63bbb596e72915d346b97c8390bf35c1..b9d17f8d68a5ba002c09da8d39fd3309d8e1bee4 100644
--- a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.executor.ts
+++ b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.executor.ts
@@ -14,24 +14,20 @@ export class E2EBenutzerExecutor {
   private benutzerDeleteDialog: BenutzerDeleteDialogE2EComponent = new BenutzerDeleteDialogE2EComponent();
   private benutzerListPage: BenutzerListE2EComponent = new BenutzerListE2EComponent();
 
-  public modifyBenutzer(user: AdminUserE2E): void {
-    this.benutzerPage.getVornameInput().type(user.vorname);
-    this.benutzerPage.getNachnameInput().type(user.nachname);
+  public createBenutzer(user: AdminUserE2E): void {
     this.benutzerPage.getBenutzernameInput().type(user.username);
-    this.benutzerPage.getMailInput().type(user.email);
-
-    if (user.isAdmin) {
-      this.benutzerPage.getAdminCheckbox().getRoot().click();
-    }
-    if (user.isUser) {
-      this.benutzerPage.getUserCheckbox().getRoot().click();
-    }
-    if (user.isLoeschen) {
-      this.benutzerPage.getLoeschenCheckbox().getRoot().click();
-    }
-    if (user.isPoststelle) {
-      this.benutzerPage.getPostCheckbox().getRoot().click();
-    }
+    this.modifyBenutzer(user);
+  }
+
+  public modifyBenutzer(user: AdminUserE2E): void {
+    this.benutzerPage.getVornameInput().clear().type(user.vorname);
+    this.benutzerPage.getNachnameInput().clear().type(user.nachname);
+    this.benutzerPage.getMailInput().clear().type(user.email);
+
+    this.benutzerPage.getAdminCheckbox().getRoot()[user.isAdmin ? 'check' : 'uncheck']();
+    this.benutzerPage.getUserCheckbox().getRoot()[user.isUser ? 'check' : 'uncheck']();
+    this.benutzerPage.getLoeschenCheckbox().getRoot()[user.isLoeschen ? 'check' : 'uncheck']();
+    this.benutzerPage.getPostCheckbox().getRoot()[user.isPoststelle ? 'check' : 'uncheck']();
 
     this.modifyOrganisationsEinheiten(user.organisationseinheiten);
   }
diff --git a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts
index 2b06766322f460cdb12f6ec065e19b9e79e756f0..e7ec4228940b8ce3b78ca5543cec2587fa163819 100644
--- a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts
+++ b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts
@@ -21,7 +21,7 @@ export class E2EBenutzerHelper {
   }
 
   public addBenutzer(user: AdminUserE2E): void {
-    this.modifyBenutzer(user);
+    this.createBenutzer(user);
   }
 
   public editBenutzerAndSave(user: AdminUserE2E): void {
@@ -37,6 +37,10 @@ export class E2EBenutzerHelper {
     this.executer.modifyBenutzer(user);
   }
 
+  private createBenutzer(user: AdminUserE2E): void {
+    this.executer.createBenutzer(user);
+  }
+
   public editOrganisationsEinheitenAndSave(organisationsEinheiten: OrganisationsEinheitE2E[]): void {
     this.executer.modifyOrganisationsEinheiten(organisationsEinheiten);
     this.saveAndCloseSnackbar();
diff --git a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts
index be750e3dfbfe90c3821451932ecb475bd31cbbe5..277f735a6038200c0c21c6efaa8b06d71d6d9e9c 100644
--- a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts
+++ b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts
@@ -4,7 +4,7 @@ import {
   BenutzerListItemE2EComponent,
 } from '../../components/benutzer/benutzer.e2e.component';
 import { AdminUserE2E } from '../../model/util';
-import { contains, exist, notExist } from '../../support/cypress.util';
+import { contains, exist, notBeEnabled, notExist } from '../../support/cypress.util';
 import { AlfaRollen } from '../../support/user-util';
 
 export class E2EBenutzerVerifier {
@@ -29,6 +29,25 @@ export class E2EBenutzerVerifier {
     });
   }
 
+  public verifyUserVorname(name: string): void {
+    this.benutzerPage.getVornameInput().should('have.value', name);
+  }
+
+  public verifyAlfaRolesCorrectlyChecked(user: AdminUserE2E): void {
+    if (user.isUser) {
+      notBeEnabled(this.benutzerPage.getLoeschenCheckbox().getRoot());
+      notBeEnabled(this.benutzerPage.getPostCheckbox().getRoot());
+    }
+    if (user.isLoeschen) {
+      notBeEnabled(this.benutzerPage.getUserCheckbox().getRoot());
+      notBeEnabled(this.benutzerPage.getPostCheckbox().getRoot());
+    }
+    if (user.isPoststelle) {
+      notBeEnabled(this.benutzerPage.getUserCheckbox().getRoot());
+      notBeEnabled(this.benutzerPage.getLoeschenCheckbox().getRoot());
+    }
+  }
+
   public verifyUserInList(user: AdminUserE2E): void {
     const benutzer: BenutzerListItemE2EComponent = this.getBenutzerItem(user.username);
     contains(benutzer.getUserName(), user.username);
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..978716b86eca55e97a7f9d636a6ae2046823d820
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.html
@@ -0,0 +1,4 @@
+<p class="flex flex-col gap-2 text-text">
+  <span class="font-medium">Benutzername</span>
+  <span>{{ userName }}</span>
+</p>
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f515c9412747b65e91386a3a5db676f2a6888271
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { UserFormDataNameComponent } from './user-form-data-name.component';
+
+describe('UserFormDataNameComponent', () => {
+  let component: UserFormDataNameComponent;
+  let fixture: ComponentFixture<UserFormDataNameComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [UserFormDataNameComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(UserFormDataNameComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..931174e68ce1fc96a8e8301d79c93e8dbb8a80a6
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data-name/user-form-data-name.component.ts
@@ -0,0 +1,10 @@
+import { Component, Input } from '@angular/core';
+
+@Component({
+  selector: 'admin-user-form-data-name',
+  standalone: true,
+  templateUrl: './user-form-data-name.component.html',
+})
+export class UserFormDataNameComponent {
+  @Input() userName: string;
+}
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.html
index 430a3fde777062e005bab85507e57ef17883b311..830c7960ac97bb94267cdb6737d3a83001e44951 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.html
@@ -2,7 +2,16 @@
   <div class="mb-4 grid gap-4 xl:grid-cols-2">
     <ods-text-editor [formControlName]="UserFormService.FIRST_NAME" [isRequired]="true" label="Vorname" />
     <ods-text-editor [formControlName]="UserFormService.LAST_NAME" [isRequired]="true" label="Nachname" />
-    <ods-text-editor [formControlName]="UserFormService.USERNAME" [isRequired]="true" label="Benutzername" />
+    @if (isPatch) {
+      <admin-user-form-data-name [userName]="userName" data-test-id="user-name-info" />
+    } @else {
+      <ods-text-editor
+        [formControlName]="UserFormService.USERNAME"
+        [isRequired]="true"
+        label="Benutzername"
+        data-test-id="user-name-editor"
+      />
+    }
     <ods-text-editor [formControlName]="UserFormService.EMAIL" [isRequired]="true" label="E-Mail" />
   </div>
 </div>
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.spec.ts
index 40a8f3782988d250b27e9b7867c52eda96072b58..e8c6ef7d13ae82ecc182da1b50a0dac60d96c00f 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.spec.ts
@@ -1,5 +1,7 @@
+import { existsAsHtmlElement } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
+import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { createUserFormGroup } from '../../../../test/form';
 import { UserFormDataComponent } from './user-form-data.component';
 
@@ -7,6 +9,9 @@ describe('UserFormDataComponent', () => {
   let component: UserFormDataComponent;
   let fixture: ComponentFixture<UserFormDataComponent>;
 
+  const userNameInfoSelector: string = getDataTestIdOf('user-name-info');
+  const userNameEditorSelector: string = getDataTestIdOf('user-name-editor');
+
   beforeEach(async () => {
     await TestBed.configureTestingModule({
       imports: [UserFormDataComponent, ReactiveFormsModule],
@@ -21,4 +26,25 @@ describe('UserFormDataComponent', () => {
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  describe('template', () => {
+    describe('user name', () => {
+      it('should show info', () => {
+        component.isPatch = true;
+        component.userName = 'ariane';
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, userNameInfoSelector);
+      });
+
+      it('should show editor', () => {
+        component.isPatch = false;
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, userNameEditorSelector);
+      });
+    });
+  });
 });
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.ts
index d40bee2ba526b9e7bb52d4f638bcb3f95f28095c..9bf2f6b95124810d75ee7676dadb60826cc55fc5 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-data/user-form-data.component.ts
@@ -1,16 +1,19 @@
 import { Component, Input } from '@angular/core';
 import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
-import { CheckboxEditorComponent, TextEditorComponent } from '@ods/component';
+import { TextEditorComponent } from '@ods/component';
 import { UserFormService } from '../user.formservice';
+import { UserFormDataNameComponent } from './user-form-data-name/user-form-data-name.component';
 
 @Component({
   selector: 'admin-user-form-data',
   standalone: true,
-  imports: [CheckboxEditorComponent, ReactiveFormsModule, TextEditorComponent],
+  imports: [ReactiveFormsModule, TextEditorComponent, UserFormDataNameComponent],
   templateUrl: './user-form-data.component.html',
 })
 export class UserFormDataComponent {
   @Input() formGroupParent: UntypedFormGroup;
+  @Input() userName: string;
+  @Input() isPatch: boolean;
 
   public readonly UserFormService = UserFormService;
 }
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
index 101227318be65fd7a14324f401d3fadfb7ceca49..1976f243ef7a93f13201789425c4c04a2e780a91 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.html
@@ -25,8 +25,8 @@
 -->
 <ods-spinner [stateResource]="userStateResource$ | async">
   <div class="max-w-[960px]" data-test-id="user-content">
-    <admin-user-form-headline [isPatch]="formService.isPatch()" />
-    <admin-user-form-data [formGroupParent]="formService.form" />
+    <admin-user-form-headline [isPatch]="isPatch" />
+    <admin-user-form-data [formGroupParent]="formService.form" [isPatch]="isPatch" [userName]="userName" />
     <admin-user-form-roles [formGroupParent]="formService.form" />
     <admin-user-form-organisations-einheit-list
       [formGroupParent]="formService.form"
@@ -34,8 +34,8 @@
     />
     <div class="flex justify-between">
       <admin-user-form-save-button />
-      @if (formService.isPatch()) {
-        <admin-delete-open-dialog-button data-test-id="delete-button-container"/>
+      @if (isPatch) {
+        <admin-delete-open-dialog-button data-test-id="delete-button-container" />
       }
     </div>
   </div>
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
index fdfb961a94c43f26d9fbbcaf7bba52bf8e8e066d..bbaa75605aa2bc1071ceba8302892ee5088be620 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.spec.ts
@@ -51,10 +51,12 @@ describe('UserFormComponent', () => {
   const userContent: string = getDataTestIdOf('user-content');
   const deleteButtonContainer: string = getDataTestIdOf('delete-button-container');
 
+  const userStateResource: StateResource<User> = createStateResource(createUser());
+
   beforeEach(async () => {
     formService = <any>{
       ...mock(UserFormService),
-      get: jest.fn(),
+      get: jest.fn().mockReturnValue(of(userStateResource)),
       isInvalid: jest.fn(),
       form: new FormGroup({}),
       isPatch: jest.fn(),
@@ -96,10 +98,11 @@ describe('UserFormComponent', () => {
 
   describe('component', () => {
     describe('on init', () => {
-      const userStateResource: StateResource<User> = createStateResource(createUser());
+      const userName: string = 'ariane';
 
       beforeEach(() => {
-        formService.get.mockReturnValue(of(userStateResource));
+        formService.isPatch.mockReturnValue(true);
+        formService.getUserName.mockReturnValue(userName);
       });
 
       it('should call formservice to get user', () => {
@@ -115,13 +118,39 @@ describe('UserFormComponent', () => {
 
         expect(component.userStateResource$).toBeObservable(cold('(a|)', { a: userStateResource }));
       });
+
+      it('should call formservice to get is patch', () => {
+        component.ngOnInit();
+
+        expect(formService.isPatch).toHaveBeenCalled();
+      });
+
+      it('should set is patch', () => {
+        component.ngOnInit();
+        fixture.detectChanges();
+
+        expect(component.isPatch).toBe(true);
+      });
+
+      it('should call formservice to get user name', () => {
+        component.ngOnInit();
+
+        expect(formService.getUserName).toHaveBeenCalled();
+      });
+
+      it('should set user name', () => {
+        component.ngOnInit();
+        fixture.detectChanges();
+
+        expect(component.userName).toBe(userName);
+      });
     });
   });
 
   describe('template', () => {
     describe('admin headline', () => {
       it('should exist with input', () => {
-        formService.isPatch.mockReturnValue(true);
+        component.isPatch = true;
 
         fixture.detectChanges();
 
@@ -133,8 +162,15 @@ describe('UserFormComponent', () => {
     describe('admin data', () => {
       it('should exist with input', () => {
         const formDataComponent: UserFormDataComponent = getMockComponent(fixture, UserFormDataComponent);
+        const userName: string = 'testUser';
+        component.isPatch = true;
+        component.userName = userName;
+
+        fixture.detectChanges();
 
         expect(formDataComponent.formGroupParent).toBe(component.formService.form);
+        expect(formDataComponent.isPatch).toBeTruthy();
+        expect(formDataComponent.userName).toBe(userName);
       });
     });
 
@@ -172,7 +208,7 @@ describe('UserFormComponent', () => {
 
   describe('admin delete button container', () => {
     it('should exist', () => {
-      formService.isPatch.mockReturnValue(true);
+      component.isPatch = true;
 
       fixture.detectChanges();
 
@@ -180,7 +216,7 @@ describe('UserFormComponent', () => {
     });
 
     it('should not exist', () => {
-      formService.isPatch.mockReturnValue(false);
+      component.isPatch = false;
 
       fixture.detectChanges();
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
index 0bcae1640c4ee01122bf83091f51d4eccc1e9d3f..f60e03692eed409a960bdeb3b27caa64b12d1ef9 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form.component.ts
@@ -29,7 +29,7 @@ import { AsyncPipe } from '@angular/common';
 import { Component, inject, OnInit } from '@angular/core';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { SpinnerComponent } from '@ods/component';
-import { Observable } from 'rxjs';
+import { Observable, tap } from 'rxjs';
 import { UserFormDataComponent } from './user-form-data/user-form-data.component';
 import { UserDeleteDialogContainerComponent } from './user-form-delete-dialog-container/user-delete-dialog-container.component';
 import { UserFormHeadlineComponent } from './user-form-headline/user-form-headline.component';
@@ -60,8 +60,15 @@ export class UserFormComponent implements OnInit {
   public readonly formService = inject(UserFormService);
 
   public userStateResource$: Observable<StateResource<User>>;
+  public isPatch: boolean;
+  public userName: string;
 
   ngOnInit(): void {
-    this.userStateResource$ = this.formService.get();
+    this.userStateResource$ = this.formService.get().pipe(
+      tap(() => {
+        this.isPatch = this.formService.isPatch();
+        this.userName = this.formService.getUserName();
+      }),
+    );
   }
 }
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
index 724564f208c9f26cb6265da1bbad81b52ad92b13..abb31e6062eba1eb79af8f741f3edb624be19bfc 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
@@ -152,6 +152,14 @@ describe('UserFormService', () => {
   });
 
   describe('listenToAlfaGroupChanges', () => {
+    it('should call handleAlfaGroupChange on initial change', () => {
+      formService._handleAlfaGroupChange = jest.fn();
+
+      formService.listenToAlfaGroupChanges();
+
+      expect(formService._handleAlfaGroupChange).toHaveBeenCalled();
+    });
+
     it('should call handleAlfaGroupChange when value of form element changes', fakeAsync(() => {
       formService._handleAlfaGroupChange = jest.fn();
 
@@ -481,6 +489,14 @@ describe('UserFormService', () => {
 
       expect(formService._initOrganisationsEinheiten$.unsubscribe).toHaveBeenCalled();
     });
+
+    it('should unsubscribe from initOrganisationsEinheiten$', () => {
+      formService._alfaGroupChanges.unsubscribe = jest.fn();
+
+      formService.ngOnDestroy();
+
+      expect(formService._alfaGroupChanges.unsubscribe).toHaveBeenCalled();
+    });
   });
 
   describe('get userName', () => {
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
index 494673b77cf049e6219418f7a726173af20e3fd0..cfccff6fbc249d1eb8174bee7fb25ac9e1cf8b56 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
@@ -59,6 +59,7 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
   public static readonly POSTSTELLE: string = 'VERWALTUNG_POSTSTELLE';
 
   _initOrganisationsEinheiten$: Subscription;
+  _alfaGroupChanges: Subscription;
 
   _organisationsEinheitToGroupIdMap: Map<string, string> = new Map<string, string>();
 
@@ -163,9 +164,10 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
     });
   }
 
-  protected listenToAlfaGroupChanges(): void {
+  listenToAlfaGroupChanges(): void {
     const alfaGroup: UntypedFormGroup = this.getRoleGroup(UserFormService.ALFA_GROUP);
-    alfaGroup.valueChanges.subscribe(() => {
+    this._handleAlfaGroupChange(alfaGroup);
+    this._alfaGroupChanges = alfaGroup.valueChanges.subscribe(() => {
       this._handleAlfaGroupChange(alfaGroup);
     });
   }
@@ -185,7 +187,7 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
 
   _disableUncheckedCheckboxes(alfaGroup: UntypedFormGroup): void {
     for (const control of Object.values<AbstractControl>(alfaGroup.controls)) {
-      if (control.value === false) control.disable({ emitEvent: false });
+      if (!control.value) control.disable({ emitEvent: false });
     }
   }
 
@@ -265,6 +267,7 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
 
   ngOnDestroy(): void {
     this._initOrganisationsEinheiten$.unsubscribe();
+    this._alfaGroupChanges.unsubscribe();
   }
 
   public getUserName(): string {