Skip to content

Commit

Permalink
Merge pull request #186 from laravel-enso/feature/usersPersonIdUnique
Browse files Browse the repository at this point in the history
made the person_id unique for the users table
  • Loading branch information
gandesc committed May 19, 2021
2 parents 1bf41a1 + ead8609 commit dce7f47
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public function up()
Schema::create('users', function (Blueprint $table) {
$table->increments('id');

$table->integer('person_id')->unsigned()->index();
$table->integer('person_id')->unsigned()->unique();

$table->integer('group_id')->unsigned()->index();
$table->foreign('group_id')->references('id')->on('user_groups');
Expand Down
7 changes: 6 additions & 1 deletion src/Http/Requests/ValidateUserRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public function authorize()
public function rules()
{
return [
'person_id' => 'exists:people,id',
'person_id' => ['exists:people,id', $this->personUnique()],
'group_id' => 'required|exists:user_groups,id',
'role_id' => 'required|exists:roles,id',
'email' => ['email', 'required', $this->emailUnique()],
Expand All @@ -37,4 +37,9 @@ protected function emailUnique()
{
return Rule::unique('people', 'email')->ignore($this->get('person_id'));
}

protected function personUnique()
{
return Rule::unique('users', 'person_id')->ignore($this->get('person_id'));
}
}
22 changes: 22 additions & 0 deletions src/Upgrades/UsersPersonIdUnique.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace LaravelEnso\Core\Upgrades;

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use LaravelEnso\Upgrade\Contracts\MigratesTable;
use LaravelEnso\Upgrade\Helpers\Table;

class UsersPersonIdUnique implements MigratesTable
{
public function isMigrated(): bool
{
return Table::hasIndex('users', 'users_person_id_unique');
}

public function migrateTable(): void
{
Schema::table('users', fn (Blueprint $table) => $table
->unique(['person_id']));
}
}

0 comments on commit dce7f47

Please sign in to comment.