From fac8668fb8249f9d43f2942995d7ec90badc198d Mon Sep 17 00:00:00 2001 From: Ferks-FK Date: Tue, 19 Sep 2023 10:18:12 -0400 Subject: [PATCH] fix: :bug: Fix role search --- app/Http/Controllers/Admin/RoleController.php | 11 ++++----- app/Http/Controllers/Admin/UserController.php | 2 +- app/Http/Controllers/Api/RoleController.php | 2 +- app/Models/Permission.php | 22 ++++++++++++++++++ app/Models/Role.php | 23 +++++++++++++++++++ config/permission.php | 4 ++-- .../2023_05_05_090127_role_power.php | 6 ----- database/seeders/PermissionsSeeder.php | 11 +++++---- .../default/views/admin/roles/index.blade.php | 4 ++-- 9 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 app/Models/Permission.php create mode 100644 app/Models/Role.php diff --git a/app/Http/Controllers/Admin/RoleController.php b/app/Http/Controllers/Admin/RoleController.php index b10c1b01..b2c685f4 100644 --- a/app/Http/Controllers/Admin/RoleController.php +++ b/app/Http/Controllers/Admin/RoleController.php @@ -11,8 +11,8 @@ use Illuminate\Contracts\View\View; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; -use Spatie\Permission\Models\Permission; -use Spatie\Permission\Models\Role; +use App\Models\Permission; +use App\Models\Role; class RoleController extends Controller { @@ -182,8 +182,7 @@ class RoleController extends Controller */ public function dataTable() { - $query = Role::query()->withCount(['users', 'permissions']); - + $query = Role::query()->withCount(['users', 'permissions'])->get(); return datatables($query) ->editColumn('id', function (Role $role) { @@ -205,10 +204,10 @@ class RoleController extends Controller ->editColumn('name', function (Role $role) { return "$role->name"; }) - ->editColumn('usercount', function ($query) { + ->editColumn('users_count', function ($query) { return $query->users_count; }) - ->editColumn('permissionscount', function ($query){ + ->editColumn('permissions_count', function ($query){ return $query->permissions_count; }) ->editColumn('power', function (Role $role){ diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 13898f08..2cc535ce 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -26,7 +26,7 @@ use Illuminate\Support\HtmlString; use Illuminate\Validation\Rule; use Illuminate\Validation\ValidationException; use Spatie\QueryBuilder\QueryBuilder; -use Spatie\Permission\Models\Role; +use App\Models\Role; class UserController extends Controller { diff --git a/app/Http/Controllers/Api/RoleController.php b/app/Http/Controllers/Api/RoleController.php index 928473f8..ac44c240 100644 --- a/app/Http/Controllers/Api/RoleController.php +++ b/app/Http/Controllers/Api/RoleController.php @@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Validation\Rule; -use Spatie\Permission\Models\Role; +use App\Models\Role; use Spatie\QueryBuilder\QueryBuilder; class RoleController extends Controller diff --git a/app/Models/Permission.php b/app/Models/Permission.php new file mode 100644 index 00000000..38ed7d42 --- /dev/null +++ b/app/Models/Permission.php @@ -0,0 +1,22 @@ + + */ + protected $fillable = [ + 'name', + 'guard_name', + 'readable_name' + ]; +} diff --git a/app/Models/Role.php b/app/Models/Role.php new file mode 100644 index 00000000..a3b7e6e1 --- /dev/null +++ b/app/Models/Role.php @@ -0,0 +1,23 @@ + + */ + protected $fillable = [ + 'name', + 'guard_name', + 'power', + 'color' + ]; +} diff --git a/config/permission.php b/config/permission.php index 5aeaab7c..f06debdc 100644 --- a/config/permission.php +++ b/config/permission.php @@ -13,7 +13,7 @@ return [ * `Spatie\Permission\Contracts\Permission` contract. */ - 'permission' => Spatie\Permission\Models\Permission::class, + 'permission' => App\Models\Permission::class, /* * When using the "HasRoles" trait from this package, we need to know which @@ -24,7 +24,7 @@ return [ * `Spatie\Permission\Contracts\Role` contract. */ - 'role' => Spatie\Permission\Models\Role::class, + 'role' => App\Models\Role::class, ], diff --git a/database/migrations/2023_05_05_090127_role_power.php b/database/migrations/2023_05_05_090127_role_power.php index 7eb0d911..9c8da51d 100644 --- a/database/migrations/2023_05_05_090127_role_power.php +++ b/database/migrations/2023_05_05_090127_role_power.php @@ -2,7 +2,6 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Schema; return new class extends Migration @@ -17,11 +16,6 @@ return new class extends Migration Schema::table('roles', function (Blueprint $table) { $table->integer('power')->after("color")->default(50); }); - - Artisan::call('db:seed', [ - '--class' => 'PermissionsSeeder', - '--force' => true - ]); } /** diff --git a/database/seeders/PermissionsSeeder.php b/database/seeders/PermissionsSeeder.php index cd3e8f34..5ddef8f4 100644 --- a/database/seeders/PermissionsSeeder.php +++ b/database/seeders/PermissionsSeeder.php @@ -6,6 +6,7 @@ use App\Models\User; use Illuminate\Database\Seeder; use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Role; +use Spatie\Permission\PermissionRegistrar; class PermissionsSeeder extends Seeder { @@ -16,6 +17,8 @@ class PermissionsSeeder extends Seeder */ public function run() { + // Reset cached roles and permissions. + app()[PermissionRegistrar::class]->forgetCachedPermissions(); $this->createPermissions(); $this->createRoles(); @@ -61,10 +64,10 @@ class PermissionsSeeder extends Seeder 'user.referral', ]; /** @var Role $adminRole */ - $adminRole = Role::updateOrCreate(["name"=>"Admin","color"=>"#fa0000", "power"=>100]); - $supportRole = Role::updateOrCreate(["name"=>"Support-Team","color"=>"#00b0b3","power"=>50]); - $clientRole = Role::updateOrCreate(["name"=>"Client","color"=>"#008009","power"=>10]); - $userRole = Role::updateOrCreate(["name"=>"User","color"=>"#0052a3","power"=>10]); + $adminRole = Role::create(["name"=>"Admin","color"=>"#fa0000", "power"=>100]); + $supportRole = Role::create(["name"=>"Support-Team","color"=>"#00b0b3","power"=>50]); + $clientRole = Role::create(["name"=>"Client","color"=>"#008009","power"=>10]); + $userRole = Role::create(["name"=>"User","color"=>"#0052a3","power"=>10]); $adminRole->givePermissionTo(Permission::findByName('*')); diff --git a/themes/default/views/admin/roles/index.blade.php b/themes/default/views/admin/roles/index.blade.php index 45412bc5..0fc9d800 100644 --- a/themes/default/views/admin/roles/index.blade.php +++ b/themes/default/views/admin/roles/index.blade.php @@ -69,10 +69,10 @@ data: 'name' }, { - data: 'usercount' + data: 'users_count' }, { - data: 'permissionscount' + data: 'permissions_count' }, { data: 'power'