Browse Source

fix: :bug: Fix role search

Ferks-FK 1 year ago
parent
commit
fac8668fb8

+ 5 - 6
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 "<span style='background-color: $role->color' class='badge'>$role->name</span>";
             })
-            ->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){

+ 1 - 1
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
 {

+ 1 - 1
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

+ 22 - 0
app/Models/Permission.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Spatie\Permission\Models\Permission as BasePermission;
+
+class Permission extends BasePermission
+{
+    use HasFactory;
+
+    /**
+     * The attributes that are mass assignable.
+     *
+     * @var array<int, string>
+     */
+    protected $fillable = [
+        'name',
+        'guard_name',
+        'readable_name'
+    ];
+}

+ 23 - 0
app/Models/Role.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Spatie\Permission\Models\Role as BaseRole;
+
+class Role extends BaseRole
+{
+    use HasFactory;
+
+    /**
+     * The attributes that are mass assignable.
+     *
+     * @var array<int, string>
+     */
+    protected $fillable = [
+        'name',
+        'guard_name',
+        'power',
+        'color'
+    ];
+}

+ 2 - 2
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,
 
     ],
 

+ 0 - 6
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
-        ]);
     }
 
     /**

+ 7 - 4
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('*'));
 

+ 2 - 2
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'