From 93bbf7f59b85394dbae1d6922698c57371103e4b Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Wed, 1 Jul 2026 17:16:37 +0200 Subject: [PATCH 1/5] Remove all terms of use logic code --- app/Jobs/CreateFirstTermsOfUseVersionJob.php | 26 ------------ app/Jobs/UserCreateJob.php | 13 ------ app/Jobs/UserTouAcceptanceJob.php | 40 ------------------- app/TermsOfUseVersion.php | 37 ----------------- app/User.php | 6 --- app/UserTermsOfUseAcceptance.php | 34 ---------------- ...2026_07_01_145331_drop_policies_tables.php | 16 ++++++++ .../CreateFirstTermsOfUseVersionJobTest.php | 22 ---------- tests/Jobs/UserTermsOfUseAcceptanceTest.php | 32 --------------- tests/Jobs/UserTouAcceptanceJobTest.php | 39 ------------------ 10 files changed, 16 insertions(+), 249 deletions(-) delete mode 100644 app/Jobs/CreateFirstTermsOfUseVersionJob.php delete mode 100644 app/Jobs/UserTouAcceptanceJob.php delete mode 100644 app/TermsOfUseVersion.php delete mode 100644 app/UserTermsOfUseAcceptance.php create mode 100644 database/migrations/2026_07_01_145331_drop_policies_tables.php delete mode 100644 tests/Jobs/CreateFirstTermsOfUseVersionJobTest.php delete mode 100644 tests/Jobs/UserTermsOfUseAcceptanceTest.php delete mode 100644 tests/Jobs/UserTouAcceptanceJobTest.php diff --git a/app/Jobs/CreateFirstTermsOfUseVersionJob.php b/app/Jobs/CreateFirstTermsOfUseVersionJob.php deleted file mode 100644 index 69d149ac6..000000000 --- a/app/Jobs/CreateFirstTermsOfUseVersionJob.php +++ /dev/null @@ -1,26 +0,0 @@ - '2022-01-01', - 'active' => true, - ]); - } catch (Throwable $exception) { - Log::error("Failure creating initial Terms of Use version: {$exception->getMessage()}"); - $this->fail($exception); - } - } -} diff --git a/app/Jobs/UserCreateJob.php b/app/Jobs/UserCreateJob.php index 42c0742af..a1cf26c7a 100644 --- a/app/Jobs/UserCreateJob.php +++ b/app/Jobs/UserCreateJob.php @@ -6,7 +6,6 @@ use App\User; use App\UserTermsOfUseAcceptance; use Illuminate\Support\Facades\Hash; -use Illuminate\Support\Facades\Log; class UserCreateJob extends Job { private $email; @@ -32,18 +31,6 @@ public function handle() { 'password' => Hash::make($this->password), 'verified' => $this->verified, ]); - - $latest = TermsOfUseVersion::latestActiveVersion(); - if ($latest) { - UserTermsOfUseAcceptance::create([ - 'user_id' => $user->id, - 'tou_version' => $latest->version, - 'tou_accepted_at' => now(), - ]); - } else { - Log::warning("No active Terms of Use version found when creating user {$user->email} (ID {$user->id})."); - } - return $user; } } diff --git a/app/Jobs/UserTouAcceptanceJob.php b/app/Jobs/UserTouAcceptanceJob.php deleted file mode 100644 index 964d3ff46..000000000 --- a/app/Jobs/UserTouAcceptanceJob.php +++ /dev/null @@ -1,40 +0,0 @@ - $user->id, - 'tou_version' => TermsOfUseVersion::latestActiveVersion()->version, - 'tou_accepted_at' => $user->created_at, - ]); - } catch (Throwable $exception) { - Log::error("Failure processing user {$user->email} for UserTouAcceptanceJob: {$exception->getMessage()}"); - $this->fail($exception); - } - } - } -} diff --git a/app/TermsOfUseVersion.php b/app/TermsOfUseVersion.php deleted file mode 100644 index 9c48f25ba..000000000 --- a/app/TermsOfUseVersion.php +++ /dev/null @@ -1,37 +0,0 @@ -where('active', true)->latest()->first(); - } - - protected function casts(): array { - return [ - 'version' => 'string', - 'active' => 'boolean', - ]; - } -} diff --git a/app/User.php b/app/User.php index 96b1d0d07..752cbe130 100644 --- a/app/User.php +++ b/app/User.php @@ -3,12 +3,10 @@ namespace App; use App\Notifications\ResetPasswordNotification; -use http\Exception\RuntimeException; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\BelongsToMany; -use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\DatabaseNotification; use Illuminate\Notifications\DatabaseNotificationCollection; @@ -93,10 +91,6 @@ public function managesWikis(): BelongsToMany { return $this->belongsToMany(Wiki::class, 'wiki_managers'); } - public function touAcceptances(): HasMany { - return $this->hasMany(UserTermsOfUseAcceptance::class, 'user_id'); - } - public function hasVerifiedEmail() { return (bool) $this->verified; } diff --git a/app/UserTermsOfUseAcceptance.php b/app/UserTermsOfUseAcceptance.php deleted file mode 100644 index 38bf08822..000000000 --- a/app/UserTermsOfUseAcceptance.php +++ /dev/null @@ -1,34 +0,0 @@ -belongsTo(User::class); - } - - protected function casts(): array { - return [ - 'tou_version' => 'string', - 'tou_accepted_at' => 'datetime', - ]; - } -} diff --git a/database/migrations/2026_07_01_145331_drop_policies_tables.php b/database/migrations/2026_07_01_145331_drop_policies_tables.php new file mode 100644 index 000000000..e8f51ff6d --- /dev/null +++ b/database/migrations/2026_07_01_145331_drop_policies_tables.php @@ -0,0 +1,16 @@ +assertDatabaseCount('tou_versions', 0); - - (new CreateFirstTermsOfUseVersionJob())->handle(); - - $this->assertDatabaseHas('tou_versions', [ - 'version' => '2022-01-01', - 'active' => true, - ]); - } -} diff --git a/tests/Jobs/UserTermsOfUseAcceptanceTest.php b/tests/Jobs/UserTermsOfUseAcceptanceTest.php deleted file mode 100644 index 3dbfffe40..000000000 --- a/tests/Jobs/UserTermsOfUseAcceptanceTest.php +++ /dev/null @@ -1,32 +0,0 @@ -handle(); - $email = 'test+' . uniqid('', true) . '@example.com'; - $user = (new UserCreateJob($email, 'thisisapassword123', true))->handle(); - - $this->assertDatabaseHas('tou_acceptances', [ - 'user_id' => $user->id, - 'tou_version' => TermsOfUseVersion::latestActiveVersion()->version, - ]); - - $rows = UserTermsOfUseAcceptance::where('user_id', $user->id)->get(); - $this->assertCount(1, $rows); - $acceptance = $rows->first(); - - $this->assertSame(TermsOfUseVersion::latestActiveVersion()->version, $acceptance->tou_version); - $this->assertNotNull($acceptance->tou_accepted_at); - } -} diff --git a/tests/Jobs/UserTouAcceptanceJobTest.php b/tests/Jobs/UserTouAcceptanceJobTest.php deleted file mode 100644 index 2c5561d68..000000000 --- a/tests/Jobs/UserTouAcceptanceJobTest.php +++ /dev/null @@ -1,39 +0,0 @@ -create(['created_at' => $t1]); - $u2 = User::factory()->create(['created_at' => $t2]); - $u3 = User::factory()->create(['created_at' => $t3]); - - (new CreateFirstTermsOfUseVersionJob())->handle(); - (new UserTouAcceptanceJob())->handle(); - - $latest = TermsOfUseVersion::latestActiveVersion()->version; - - $this->assertDatabaseHas('tou_acceptances', ['user_id' => $u1->id, 'tou_version' => $latest]); - $this->assertDatabaseHas('tou_acceptances', ['user_id' => $u2->id, 'tou_version' => $latest]); - $this->assertDatabaseHas('tou_acceptances', ['user_id' => $u3->id, 'tou_version' => $latest]); - - $this->assertTrue($t1->equalTo(UserTermsOfUseAcceptance::where('user_id', $u1->id)->firstOrFail()->tou_accepted_at)); - $this->assertTrue($t2->equalTo(UserTermsOfUseAcceptance::where('user_id', $u2->id)->firstOrFail()->tou_accepted_at)); - $this->assertTrue($t3->equalTo(UserTermsOfUseAcceptance::where('user_id', $u3->id)->firstOrFail()->tou_accepted_at)); - } -} From 924c94469fbb63c97a1c31d4a5694ebf8bcc6fdd Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Thu, 2 Jul 2026 09:29:32 +0200 Subject: [PATCH 2/5] remove unused class in UserCreateJob --- app/Jobs/UserCreateJob.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/Jobs/UserCreateJob.php b/app/Jobs/UserCreateJob.php index a1cf26c7a..caceff95e 100644 --- a/app/Jobs/UserCreateJob.php +++ b/app/Jobs/UserCreateJob.php @@ -2,9 +2,7 @@ namespace App\Jobs; -use App\TermsOfUseVersion; use App\User; -use App\UserTermsOfUseAcceptance; use Illuminate\Support\Facades\Hash; class UserCreateJob extends Job { From 9defcea27faed3018a2903e3893086fec4444618 Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Thu, 2 Jul 2026 09:38:07 +0200 Subject: [PATCH 3/5] Remove wrong migration file --- .../2026_07_01_145331_drop_policies_tables.php | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 database/migrations/2026_07_01_145331_drop_policies_tables.php diff --git a/database/migrations/2026_07_01_145331_drop_policies_tables.php b/database/migrations/2026_07_01_145331_drop_policies_tables.php deleted file mode 100644 index e8f51ff6d..000000000 --- a/database/migrations/2026_07_01_145331_drop_policies_tables.php +++ /dev/null @@ -1,16 +0,0 @@ - Date: Thu, 2 Jul 2026 13:25:30 +0200 Subject: [PATCH 4/5] Drop tou_versions and tou_acceptances tables --- ...rsions_and_terms_of_use_acceptances_tables.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php diff --git a/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php b/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php new file mode 100644 index 000000000..076607256 --- /dev/null +++ b/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php @@ -0,0 +1,15 @@ + Date: Thu, 2 Jul 2026 13:32:23 +0200 Subject: [PATCH 5/5] Fix linting --- app/Jobs/UserCreateJob.php | 2 ++ ...rms_of_use_versions_and_terms_of_use_acceptances_tables.php | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Jobs/UserCreateJob.php b/app/Jobs/UserCreateJob.php index caceff95e..958bfc13b 100644 --- a/app/Jobs/UserCreateJob.php +++ b/app/Jobs/UserCreateJob.php @@ -29,6 +29,8 @@ public function handle() { 'password' => Hash::make($this->password), 'verified' => $this->verified, ]); + return $user; + } } diff --git a/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php b/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php index 076607256..5b67e543f 100644 --- a/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php +++ b/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php @@ -3,8 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class() extends Migration { /** * Run the migrations. */