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;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model;
class Access extends Model
{
use HasUuids;
protected $fillable = [
'entity_id',
'entity_type',

View File

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

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models;
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 = [
'permission_id',

View File

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

View File

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

View File

@ -3,11 +3,12 @@
namespace Blax\Roles\Models;
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 = [
'role_id',

View File

@ -93,7 +93,7 @@ trait HasPermissions
config('roles.models.permission'),
'member',
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),
'member',
$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()
->where(function ($q) use ($pivotTable) {
$q->where($pivotTable . '.expires_at', '>', now())