fix: 🐛 Fix role search
This commit is contained in:
parent
8fdac0ee46
commit
fac8668fb8
|
@ -11,8 +11,8 @@ use Illuminate\Contracts\View\View;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Spatie\Permission\Models\Permission;
|
use App\Models\Permission;
|
||||||
use Spatie\Permission\Models\Role;
|
use App\Models\Role;
|
||||||
|
|
||||||
class RoleController extends Controller
|
class RoleController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -182,8 +182,7 @@ class RoleController extends Controller
|
||||||
*/
|
*/
|
||||||
public function dataTable()
|
public function dataTable()
|
||||||
{
|
{
|
||||||
$query = Role::query()->withCount(['users', 'permissions']);
|
$query = Role::query()->withCount(['users', 'permissions'])->get();
|
||||||
|
|
||||||
|
|
||||||
return datatables($query)
|
return datatables($query)
|
||||||
->editColumn('id', function (Role $role) {
|
->editColumn('id', function (Role $role) {
|
||||||
|
@ -205,10 +204,10 @@ class RoleController extends Controller
|
||||||
->editColumn('name', function (Role $role) {
|
->editColumn('name', function (Role $role) {
|
||||||
return "<span style='background-color: $role->color' class='badge'>$role->name</span>";
|
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;
|
return $query->users_count;
|
||||||
})
|
})
|
||||||
->editColumn('permissionscount', function ($query){
|
->editColumn('permissions_count', function ($query){
|
||||||
return $query->permissions_count;
|
return $query->permissions_count;
|
||||||
})
|
})
|
||||||
->editColumn('power', function (Role $role){
|
->editColumn('power', function (Role $role){
|
||||||
|
|
|
@ -26,7 +26,7 @@ use Illuminate\Support\HtmlString;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Spatie\QueryBuilder\QueryBuilder;
|
use Spatie\QueryBuilder\QueryBuilder;
|
||||||
use Spatie\Permission\Models\Role;
|
use App\Models\Role;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use Spatie\Permission\Models\Role;
|
use App\Models\Role;
|
||||||
use Spatie\QueryBuilder\QueryBuilder;
|
use Spatie\QueryBuilder\QueryBuilder;
|
||||||
|
|
||||||
class RoleController extends Controller
|
class RoleController extends Controller
|
||||||
|
|
22
app/Models/Permission.php
Normal file
22
app/Models/Permission.php
Normal 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
23
app/Models/Role.php
Normal 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'
|
||||||
|
];
|
||||||
|
}
|
|
@ -13,7 +13,7 @@ return [
|
||||||
* `Spatie\Permission\Contracts\Permission` contract.
|
* `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
|
* When using the "HasRoles" trait from this package, we need to know which
|
||||||
|
@ -24,7 +24,7 @@ return [
|
||||||
* `Spatie\Permission\Contracts\Role` contract.
|
* `Spatie\Permission\Contracts\Role` contract.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'role' => Spatie\Permission\Models\Role::class,
|
'role' => App\Models\Role::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Support\Facades\Artisan;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
return new class extends Migration
|
return new class extends Migration
|
||||||
|
@ -17,11 +16,6 @@ return new class extends Migration
|
||||||
Schema::table('roles', function (Blueprint $table) {
|
Schema::table('roles', function (Blueprint $table) {
|
||||||
$table->integer('power')->after("color")->default(50);
|
$table->integer('power')->after("color")->default(50);
|
||||||
});
|
});
|
||||||
|
|
||||||
Artisan::call('db:seed', [
|
|
||||||
'--class' => 'PermissionsSeeder',
|
|
||||||
'--force' => true
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -6,6 +6,7 @@ use App\Models\User;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Spatie\Permission\Models\Permission;
|
use Spatie\Permission\Models\Permission;
|
||||||
use Spatie\Permission\Models\Role;
|
use Spatie\Permission\Models\Role;
|
||||||
|
use Spatie\Permission\PermissionRegistrar;
|
||||||
|
|
||||||
class PermissionsSeeder extends Seeder
|
class PermissionsSeeder extends Seeder
|
||||||
{
|
{
|
||||||
|
@ -16,6 +17,8 @@ class PermissionsSeeder extends Seeder
|
||||||
*/
|
*/
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
|
// Reset cached roles and permissions.
|
||||||
|
app()[PermissionRegistrar::class]->forgetCachedPermissions();
|
||||||
|
|
||||||
$this->createPermissions();
|
$this->createPermissions();
|
||||||
$this->createRoles();
|
$this->createRoles();
|
||||||
|
@ -61,10 +64,10 @@ class PermissionsSeeder extends Seeder
|
||||||
'user.referral',
|
'user.referral',
|
||||||
];
|
];
|
||||||
/** @var Role $adminRole */
|
/** @var Role $adminRole */
|
||||||
$adminRole = Role::updateOrCreate(["name"=>"Admin","color"=>"#fa0000", "power"=>100]);
|
$adminRole = Role::create(["name"=>"Admin","color"=>"#fa0000", "power"=>100]);
|
||||||
$supportRole = Role::updateOrCreate(["name"=>"Support-Team","color"=>"#00b0b3","power"=>50]);
|
$supportRole = Role::create(["name"=>"Support-Team","color"=>"#00b0b3","power"=>50]);
|
||||||
$clientRole = Role::updateOrCreate(["name"=>"Client","color"=>"#008009","power"=>10]);
|
$clientRole = Role::create(["name"=>"Client","color"=>"#008009","power"=>10]);
|
||||||
$userRole = Role::updateOrCreate(["name"=>"User","color"=>"#0052a3","power"=>10]);
|
$userRole = Role::create(["name"=>"User","color"=>"#0052a3","power"=>10]);
|
||||||
|
|
||||||
$adminRole->givePermissionTo(Permission::findByName('*'));
|
$adminRole->givePermissionTo(Permission::findByName('*'));
|
||||||
|
|
||||||
|
|
|
@ -69,10 +69,10 @@
|
||||||
data: 'name'
|
data: 'name'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
data: 'usercount'
|
data: 'users_count'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
data: 'permissionscount'
|
data: 'permissions_count'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
data: 'power'
|
data: 'power'
|
||||||
|
|
Loading…
Reference in a new issue