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..958bfc13b 100644 --- a/app/Jobs/UserCreateJob.php +++ b/app/Jobs/UserCreateJob.php @@ -2,11 +2,8 @@ namespace App\Jobs; -use App\TermsOfUseVersion; use App\User; -use App\UserTermsOfUseAcceptance; use Illuminate\Support\Facades\Hash; -use Illuminate\Support\Facades\Log; class UserCreateJob extends Job { private $email; @@ -33,17 +30,7 @@ public function handle() { '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_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..5b67e543f --- /dev/null +++ b/database/migrations/2026_07_02_112028_drop_terms_of_use_versions_and_terms_of_use_acceptances_tables.php @@ -0,0 +1,14 @@ +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)); - } -}