Skip to content

Commit b6c755a

Browse files
author
Saurabh Sharma
committed
Added UUID
1 parent dc0bc23 commit b6c755a

File tree

7 files changed

+37
-12
lines changed

7 files changed

+37
-12
lines changed

app/Models/Permission.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
namespace App\Models;
3+
use Spatie\Permission\Models\Permission as SpatiePermission;
4+
use Illuminate\Database\Eloquent\Concerns\HasUuids;
5+
6+
class Role extends SpatiePermission
7+
{
8+
use HasUuids;
9+
}

app/Models/Role.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
namespace App\Models;
3+
use Spatie\Permission\Models\Role as SpatieRole;
4+
use Illuminate\Database\Eloquent\Concerns\HasUuids;
5+
6+
class Role extends SpatieRole
7+
{
8+
use HasUuids;
9+
}

app/Models/User.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
use Illuminate\Foundation\Auth\User as Authenticatable;
88
use Illuminate\Notifications\Notifiable;
99
use Laravel\Sanctum\HasApiTokens;
10+
use Illuminate\Database\Eloquent\Concerns\HasUuids;
1011

1112
class User extends Authenticatable
1213
{
1314
use HasApiTokens, HasFactory, Notifiable;
15+
use HasUuids;
1416

1517
/**
1618
* The attributes that are mass assignable.

config/permission.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
* `Spatie\Permission\Contracts\Permission` contract.
1414
*/
1515

16-
'permission' => Spatie\Permission\Models\Permission::class,
16+
// 'permission' => Spatie\Permission\Models\Permission::class,
17+
'permission' => App\Models\Permission::class,
1718

1819
/*
1920
* When using the "HasRoles" trait from this package, we need to know which
@@ -24,7 +25,8 @@
2425
* `Spatie\Permission\Contracts\Role` contract.
2526
*/
2627

27-
'role' => Spatie\Permission\Models\Role::class,
28+
// 'role' => Spatie\Permission\Models\Role::class,
29+
'role' => App\Models\Role::class,
2830

2931
],
3032

database/migrations/2014_10_12_000000_create_users_table.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
public function up(): void
1313
{
1414
Schema::create('users', function (Blueprint $table) {
15-
$table->id();
15+
$table->uuid('id')->primary();
1616
$table->string('name');
1717
$table->string('email')->unique();
1818
$table->timestamp('email_verified_at')->nullable();

database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public function up(): void
1313
{
1414
Schema::create('personal_access_tokens', function (Blueprint $table) {
1515
$table->id();
16-
$table->morphs('tokenable');
16+
$table->uuidMorphs('tokenable');
1717
$table->string('name');
1818
$table->string('token', 64)->unique();
1919
$table->text('abilities')->nullable();

database/migrations/2023_08_18_113624_create_permission_tables.php

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ public function up()
2626
}
2727

2828
Schema::create($tableNames['permissions'], function (Blueprint $table) {
29-
$table->bigIncrements('id'); // permission id
29+
$table->uuid('id'); // permission id
3030
$table->string('name'); // For MySQL 8.0 use string('name', 125);
3131
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
3232
$table->timestamps();
3333

3434
$table->unique(['name', 'guard_name']);
35+
$table->primary('id');
3536
});
3637

3738
Schema::create($tableNames['roles'], function (Blueprint $table) use ($teams, $columnNames) {
38-
$table->bigIncrements('id'); // role id
39+
$table->uuid('id'); // role id
3940
if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing
4041
$table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable();
4142
$table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index');
@@ -48,13 +49,15 @@ public function up()
4849
} else {
4950
$table->unique(['name', 'guard_name']);
5051
}
52+
53+
$table->primary('id');
5154
});
5255

5356
Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) {
54-
$table->unsignedBigInteger(PermissionRegistrar::$pivotPermission);
57+
$table->uuid(PermissionRegistrar::$pivotPermission);
5558

5659
$table->string('model_type');
57-
$table->unsignedBigInteger($columnNames['model_morph_key']);
60+
$table->uuid($columnNames['model_morph_key']);
5861
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index');
5962

6063
$table->foreign(PermissionRegistrar::$pivotPermission)
@@ -75,10 +78,10 @@ public function up()
7578
});
7679

7780
Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames, $teams) {
78-
$table->unsignedBigInteger(PermissionRegistrar::$pivotRole);
81+
$table->uuid(PermissionRegistrar::$pivotRole);
7982

8083
$table->string('model_type');
81-
$table->unsignedBigInteger($columnNames['model_morph_key']);
84+
$table->uuid($columnNames['model_morph_key']);
8285
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index');
8386

8487
$table->foreign(PermissionRegistrar::$pivotRole)
@@ -98,8 +101,8 @@ public function up()
98101
});
99102

100103
Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) {
101-
$table->unsignedBigInteger(PermissionRegistrar::$pivotPermission);
102-
$table->unsignedBigInteger(PermissionRegistrar::$pivotRole);
104+
$table->uuid(PermissionRegistrar::$pivotPermission);
105+
$table->uuid(PermissionRegistrar::$pivotRole);
103106

104107
$table->foreign(PermissionRegistrar::$pivotPermission)
105108
->references('id') // permission id

0 commit comments

Comments
 (0)