feat: switch models to UUIDs and use MorphPivot for role/permission members

This commit is contained in:
Fabian @ Blax Software 2026-04-17 11:03:02 +02:00
parent 46c01f1b06
commit 01cff931bc
8 changed files with 19 additions and 10 deletions

View File

@ -2,10 +2,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Access extends Model class Access extends Model
{ {
use HasUuids;
protected $fillable = [ protected $fillable = [
'entity_id', 'entity_id',
'entity_type', 'entity_type',

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Blax\Roles\Traits\HasAccess; use Blax\Roles\Traits\HasAccess;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Permission extends Model class Permission extends Model
{ {
use HasAccess; use HasAccess, HasUuids;
protected $fillable = [ protected $fillable = [
'slug', 'slug',
'description', 'description',

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Blax\Roles\Traits\WillExpire; use Blax\Roles\Traits\WillExpire;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Relations\MorphPivot;
class PermissionMember extends Model class PermissionMember extends MorphPivot
{ {
use WillExpire; use HasUuids, WillExpire;
protected $fillable = [ protected $fillable = [
'permission_id', 'permission_id',

View File

@ -2,10 +2,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class PermissionUsage extends Model class PermissionUsage extends Model
{ {
use HasUuids;
protected $fillable = [ protected $fillable = [
'permission_id', 'permission_id',
'usage', 'usage',

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Blax\Roles\Traits\HasPermissions; use Blax\Roles\Traits\HasPermissions;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Role extends Model class Role extends Model
{ {
use HasPermissions; use HasPermissions, HasUuids;
protected $fillable = [ protected $fillable = [
'parent_id', 'parent_id',

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models; namespace Blax\Roles\Models;
use Blax\Roles\Traits\WillExpire; use Blax\Roles\Traits\WillExpire;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Relations\MorphPivot;
class RoleMember extends Model class RoleMember extends MorphPivot
{ {
use WillExpire; use HasUuids, WillExpire;
protected $fillable = [ protected $fillable = [
'role_id', 'role_id',

View File

@ -93,7 +93,7 @@ trait HasPermissions
config('roles.models.permission'), config('roles.models.permission'),
'member', 'member',
config('roles.table_names.permission_member', 'permission_members') config('roles.table_names.permission_member', 'permission_members')
); )->using(config('roles.models.permission_member', \Blax\Roles\Models\PermissionMember::class));
} }
/** /**

View File

@ -21,7 +21,8 @@ trait HasRoles
config('roles.models.role', \Blax\Roles\Models\Role::class), config('roles.models.role', \Blax\Roles\Models\Role::class),
'member', 'member',
$pivotTable $pivotTable
)->withPivot('expires_at', 'context', 'created_at', 'updated_at') )->using(config('roles.models.role_member', \Blax\Roles\Models\RoleMember::class))
->withPivot('expires_at', 'context', 'created_at', 'updated_at')
->withTimestamps() ->withTimestamps()
->where(function ($q) use ($pivotTable) { ->where(function ($q) use ($pivotTable) {
$q->where($pivotTable . '.expires_at', '>', now()) $q->where($pivotTable . '.expires_at', '>', now())