From 6e284d7a6c35b9accb5109b394aae4d3bdc026b2 Mon Sep 17 00:00:00 2001
From: Dan Brown <ssddanbrown@googlemail.com>
Date: Fri, 24 Mar 2023 14:43:48 +0000
Subject: [PATCH] Fixed issue with user delete ownership not migrating

Caused by input not being part of the submitted form.
Updated test to ensure the input is within a form.
For #4124
---
 resources/views/users/delete.blade.php | 52 +++++++++++++-------------
 tests/User/UserManagementTest.php      |  1 +
 2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/resources/views/users/delete.blade.php b/resources/views/users/delete.blade.php
index b18c182eb..b2f08b641 100644
--- a/resources/views/users/delete.blade.php
+++ b/resources/views/users/delete.blade.php
@@ -5,40 +5,40 @@
 
         @include('settings.parts.navbar', ['selected' => 'users'])
 
-        <div class="card content-wrap auto-height">
-            <h1 class="list-heading">{{ trans('settings.users_delete') }}</h1>
+        <form action="{{ url("/settings/users/{$user->id}") }}" method="POST">
+            {!! csrf_field() !!}
 
-            <p>{{ trans('settings.users_delete_warning', ['userName' => $user->name]) }}</p>
+            <div class="card content-wrap auto-height">
+                <h1 class="list-heading">{{ trans('settings.users_delete') }}</h1>
+
+                <p>{{ trans('settings.users_delete_warning', ['userName' => $user->name]) }}</p>
+
+                @if(userCan('users-manage'))
+                    <hr class="my-l">
+
+                    <div class="grid half gap-xl v-center">
+                        <div>
+                            <label class="setting-list-label">{{ trans('settings.users_migrate_ownership') }}</label>
+                            <p class="small">{{ trans('settings.users_migrate_ownership_desc') }}</p>
+                        </div>
+                        <div>
+                            @include('form.user-select', ['name' => 'new_owner_id', 'user' => null])
+                        </div>
+                    </div>
+                @endif
 
-            @if(userCan('users-manage'))
                 <hr class="my-l">
 
-                <div class="grid half gap-xl v-center">
-                    <div>
-                        <label class="setting-list-label">{{ trans('settings.users_migrate_ownership') }}</label>
-                        <p class="small">{{ trans('settings.users_migrate_ownership_desc') }}</p>
-                    </div>
-                    <div>
-                        @include('form.user-select', ['name' => 'new_owner_id', 'user' => null])
-                    </div>
-                </div>
-            @endif
-
-            <hr class="my-l">
-
-            <div class="grid half">
-                <p class="text-neg"><strong>{{ trans('settings.users_delete_confirm') }}</strong></p>
-                <div>
-                    <form action="{{ url("/settings/users/{$user->id}") }}" method="POST" class="text-right">
-                        {!! csrf_field() !!}
-
+                <div class="grid half">
+                    <p class="text-neg"><strong>{{ trans('settings.users_delete_confirm') }}</strong></p>
+                    <div class="text-right">
                         <input type="hidden" name="_method" value="DELETE">
                         <a href="{{ url("/settings/users/{$user->id}") }}" class="button outline">{{ trans('common.cancel') }}</a>
                         <button type="submit" class="button">{{ trans('common.confirm') }}</button>
-                    </form>
+                    </div>
                 </div>
-            </div>
 
-        </div>
+            </div>
+        </form>
     </div>
 @stop
diff --git a/tests/User/UserManagementTest.php b/tests/User/UserManagementTest.php
index af17db52b..d5cd7ac79 100644
--- a/tests/User/UserManagementTest.php
+++ b/tests/User/UserManagementTest.php
@@ -145,6 +145,7 @@ class UserManagementTest extends TestCase
 
         $resp = $this->asEditor()->get("settings/users/{$editor->id}/delete");
         $resp->assertSee('Migrate Ownership');
+        $this->withHtml($resp)->assertElementExists('form input[name="new_owner_id"]');
         $resp->assertSee('new_owner_id');
     }