role powers
This commit is contained in:
parent
a573454810
commit
7d974d3408
5 changed files with 59 additions and 5 deletions
|
@ -10,6 +10,7 @@ use Illuminate\Contracts\View\Factory;
|
|||
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;
|
||||
|
||||
|
@ -66,7 +67,8 @@ class RoleController extends Controller
|
|||
|
||||
$role = Role::create([
|
||||
'name' => $request->name,
|
||||
'color' => $request->color
|
||||
'color' => $request->color,
|
||||
'power' => $request->power
|
||||
]);
|
||||
|
||||
if ($request->permissions) {
|
||||
|
@ -96,6 +98,10 @@ class RoleController extends Controller
|
|||
{
|
||||
$this->checkPermission(self::EDIT_PERMISSION);
|
||||
|
||||
if(Auth::user()->roles[0]->power < $role->power){
|
||||
return back()->with("error","You dont have enough Power to edit that Role");
|
||||
}
|
||||
|
||||
$permissions = Permission::all();
|
||||
|
||||
return view('admin.roles.edit', compact('role', 'permissions'));
|
||||
|
@ -111,6 +117,10 @@ class RoleController extends Controller
|
|||
{
|
||||
$this->checkPermission(self::EDIT_PERMISSION);
|
||||
|
||||
if(Auth::user()->roles[0]->power < $role->power){
|
||||
return back()->with("error","You dont have enough Power to edit that Role");
|
||||
}
|
||||
|
||||
if ($request->permissions) {
|
||||
if($role->id != 1){ //disable admin permissions change
|
||||
$role->syncPermissions($request->permissions);
|
||||
|
@ -201,6 +211,9 @@ class RoleController extends Controller
|
|||
->editColumn('permissionscount', function ($query){
|
||||
return $query->permissions_count;
|
||||
})
|
||||
->editColumn('power', function (Role $role){
|
||||
return $role->power;
|
||||
})
|
||||
->rawColumns(['actions', 'name'])
|
||||
->make(true);
|
||||
}
|
||||
|
|
32
database/migrations/2023_05_05_090127_role_power.php
Normal file
32
database/migrations/2023_05_05_090127_role_power.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('roles', function (Blueprint $table) {
|
||||
$table->integer('power')->after("color")->default(50);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('roles', function (Blueprint $table) {
|
||||
$table->dropColumn('power');
|
||||
});
|
||||
}
|
||||
};
|
|
@ -66,10 +66,10 @@ class PermissionsSeeder extends Seeder
|
|||
'user.referral',
|
||||
];
|
||||
/** @var Role $adminRole */
|
||||
$adminRole = Role::updateOrCreate(["name"=>"Admin","color"=>"#fa0000"]);
|
||||
$supportRole = Role::updateOrCreate(["name"=>"Support-Team","color"=>"#00b0b3"]);
|
||||
$clientRole = Role::updateOrCreate(["name"=>"Client","color"=>"#008009"]);
|
||||
$userRole = Role::updateOrCreate(["name"=>"User","color"=>"#0052a3"]);
|
||||
$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->givePermissionTo(Permission::findByName('*'));
|
||||
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
name="color"
|
||||
value="{{ isset($role) ? $role->color : null}}"/>
|
||||
|
||||
<x-input.number label="{{(__('Power'))}}"
|
||||
name="power"
|
||||
min="1"
|
||||
max="100"
|
||||
step="1"
|
||||
value="{{ isset($role) ? $role->power : 10}}"/>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6">
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<th>{{__("Name")}}</th>
|
||||
<th>{{__("User count")}}</th>
|
||||
<th>{{__("Permissions count")}}</th>
|
||||
<th>{{__("Power")}}</th>
|
||||
<th>{{__("Actions")}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -49,6 +50,7 @@
|
|||
{data: 'name'},
|
||||
{data: 'usercount'},
|
||||
{data: 'permissionscount'},
|
||||
{data: 'power'},
|
||||
{data: 'actions' , sortable : false},
|
||||
],
|
||||
fnDrawCallback: function( oSettings ) {
|
||||
|
|
Loading…
Add table
Reference in a new issue