fix: 🐛 Fix role search

This commit is contained in:
Ferks-FK 2023-09-19 10:18:12 -04:00
parent 8fdac0ee46
commit fac8668fb8
9 changed files with 63 additions and 22 deletions

View file

@ -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){

View file

@ -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
{

View file

@ -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
app/Models/Permission.php Normal file
View file

@ -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
app/Models/Role.php Normal file
View file

@ -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'
];
}

View file

@ -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,
],

View file

@ -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
]);
}
/**

View file

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

View file

@ -69,10 +69,10 @@
data: 'name'
},
{
data: 'usercount'
data: 'users_count'
},
{
data: 'permissionscount'
data: 'permissions_count'
},
{
data: 'power'