diff --git a/config/permissions.php b/config/roles.php similarity index 99% rename from config/permissions.php rename to config/roles.php index e0c3f79..5c627ce 100644 --- a/config/permissions.php +++ b/config/roles.php @@ -8,7 +8,6 @@ return [ 'role_permission' => \Blax\Roles\Models\RolePermission::class, 'permission' => \Blax\Roles\Models\Permission::class, 'permission_usage' => \Blax\Roles\Models\PermissionUsage::class, - ], 'table_names' => [ diff --git a/database/migrations/create_blax_role_tables.php b/database/migrations/create_blax_role_tables.php.stub similarity index 71% rename from database/migrations/create_blax_role_tables.php rename to database/migrations/create_blax_role_tables.php.stub index a13f796..af91c93 100644 --- a/database/migrations/create_blax_role_tables.php +++ b/database/migrations/create_blax_role_tables.php.stub @@ -14,7 +14,7 @@ return new class extends Migration public function up(): void { // Permission - Schema::create(config('permissions.table_names.permissions'), function (Blueprint $table) { + Schema::create(config('roles.table_names.permissions'), function (Blueprint $table) { $table->id(); $table->string('name')->unique(); $table->string('description')->nullable(); @@ -22,7 +22,7 @@ return new class extends Migration }); // PermissionUsage - Schema::create(config('permissions.table_names.permission_usage'), function (Blueprint $table) { + Schema::create(config('roles.table_names.permission_usage'), function (Blueprint $table) { $table->id(); $table->foreignId('permission_id')->constrained('permissions')->onDelete('cascade'); $table->morphs('user'); @@ -31,7 +31,7 @@ return new class extends Migration }); // Role - Schema::create(config('permissions.table_names.roles'), function (Blueprint $table) { + Schema::create(config('roles.table_names.roles'), function (Blueprint $table) { $table->id(); $table->foreignId('parent_id') ->nullable() @@ -44,7 +44,7 @@ return new class extends Migration }); // RoleMember - Schema::create(config('permissions.table_names.role_members'), function (Blueprint $table) { + Schema::create(config('roles.table_names.role_members'), function (Blueprint $table) { $table->id(); $table->foreignId('role_id')->constrained('roles')->onDelete('cascade'); $table->morphs('member'); @@ -54,7 +54,7 @@ return new class extends Migration }); // RolePermission - Schema::create(config('permissions.table_names.role_permission'), function (Blueprint $table) { + Schema::create(config('roles.table_names.role_permission'), function (Blueprint $table) { $table->id(); $table->foreignId('role_id')->constrained('roles')->onDelete('cascade'); $table->foreignId('permission_id')->constrained('permissions')->onDelete('cascade'); @@ -69,6 +69,10 @@ return new class extends Migration */ public function down(): void { - // + Schema::dropIfExists(config('roles.table_names.role_permission')); + Schema::dropIfExists(config('roles.table_names.role_members')); + Schema::dropIfExists(config('roles.table_names.roles')); + Schema::dropIfExists(config('roles.table_names.permission_usage')); + Schema::dropIfExists(config('roles.table_names.permissions')); } }; diff --git a/src/Models/Permission.php b/src/Models/Permission.php index a86b8df..8f8f12c 100644 --- a/src/Models/Permission.php +++ b/src/Models/Permission.php @@ -15,7 +15,7 @@ class Permission extends Model { { parent::__construct($attributes); - $this->table = config('permissions.table_names.permissions') ?: parent::getTable(); + $this->table = config('roles.table_names.permissions') ?: parent::getTable(); } public function usages() diff --git a/src/Models/PermissionUsage.php b/src/Models/PermissionUsage.php index 71ca8d6..2ba4c83 100644 --- a/src/Models/PermissionUsage.php +++ b/src/Models/PermissionUsage.php @@ -14,7 +14,7 @@ class PermissionUsage extends Model { { parent::__construct($attributes); - $this->table = config('permissions.table_names.permission_usages') ?: parent::getTable(); + $this->table = config('roles.table_names.permission_usages') ?: parent::getTable(); } public function permission() diff --git a/src/Models/Role.php b/src/Models/Role.php index 7a9ea7c..c2e56c1 100644 --- a/src/Models/Role.php +++ b/src/Models/Role.php @@ -16,7 +16,7 @@ class Role extends Model { { parent::__construct($attributes); - $this->table = config('permissions.table_names.roles') ?: parent::getTable(); + $this->table = config('roles.table_names.roles') ?: parent::getTable(); } public function members() { diff --git a/src/Models/RoleMember.php b/src/Models/RoleMember.php index d98b4ac..0ce35b2 100644 --- a/src/Models/RoleMember.php +++ b/src/Models/RoleMember.php @@ -16,7 +16,7 @@ class RoleMember extends Model { { parent::__construct($attributes); - $this->table = config('permissions.table_names.role_members') ?: parent::getTable(); + $this->table = config('roles.table_names.role_members') ?: parent::getTable(); } public function role() { diff --git a/src/Models/RolePermission.php b/src/Models/RolePermission.php index 3b265b7..e70ddb1 100644 --- a/src/Models/RolePermission.php +++ b/src/Models/RolePermission.php @@ -14,7 +14,7 @@ class RolePermission extends Model { { parent::__construct($attributes); - $this->table = config('permissions.table_names.role_permission') ?: parent::getTable(); + $this->table = config('roles.table_names.role_permission') ?: parent::getTable(); } public function role() { diff --git a/src/PermissionsServiceProvider.php b/src/PermissionsServiceProvider.php index ed402d8..37e222a 100644 --- a/src/PermissionsServiceProvider.php +++ b/src/PermissionsServiceProvider.php @@ -11,8 +11,7 @@ class PermissionsServiceProvider extends \Illuminate\Support\ServiceProvider */ public function register() { - $this->offerPublishing(); - + // } /** @@ -22,7 +21,9 @@ class PermissionsServiceProvider extends \Illuminate\Support\ServiceProvider */ public function boot() { - // Load routes, migrations, etc. if needed + $this->offerPublishing(); + + $this->registerModelBindings(); } /** @@ -42,11 +43,20 @@ class PermissionsServiceProvider extends \Illuminate\Support\ServiceProvider } $this->publishes([ - __DIR__.'/../config/permission.php' => config_path('permission.php'), - ], 'permission-config'); + __DIR__.'/../config/roles.php' => config_path('roles.php'), + ], 'roles-config'); $this->publishes([ - __DIR__.'/../database/migrations/create_permission_tables.php.stub' => $this->getMigrationFileName('create_permission_tables.php'), - ], 'permission-migrations'); + __DIR__.'/../database/migrations/create_blax_role_tables.php.stub' => $this->getMigrationFileName('create_blax_role_tables.php'), + ], 'roles-migrations'); + } + + protected function registerModelBindings(): void + { + $this->app->bind(\Blax\Roles\Models\Role::class, fn ($app) => $app->make($app->config['roles.models.role'])); + $this->app->bind(\Blax\Roles\Models\RoleMember::class, fn ($app) => $app->make($app->config['roles.models.role_member'])); + $this->app->bind(\Blax\Roles\Models\RolePermission::class, fn ($app) => $app->make($app->config['roles.models.role_permission'])); + $this->app->bind(\Blax\Roles\Models\Permission::class, fn ($app) => $app->make($app->config['roles.models.permission'])); + $this->app->bind(\Blax\Roles\Models\PermissionUsage::class, fn ($app) => $app->make($app->config['roles.models.permission_usage'])); } } diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 7db27f3..6b06cd3 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -12,9 +12,9 @@ trait HasRoles public function roles() { return $this->morphToMany( - config('permissions.models.role', \Blax\Roles\Models\Role::class), + config('roles.models.role', \Blax\Roles\Models\Role::class), 'member', - config('permissions.table_names.role_members', 'role_members') + config('roles.table_names.role_members', 'role_members') ); }