first commit
This commit is contained in:
85
app/Http/Controllers/Admin/RoleCrudController.php
Normal file
85
app/Http/Controllers/Admin/RoleCrudController.php
Normal file
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use Backpack\PermissionManager\app\Http\Controllers\RoleCrudController as OrgController;
|
||||
use Backpack\PermissionManager\app\Http\Requests\RoleStoreCrudRequest as StoreRequest;
|
||||
use Backpack\PermissionManager\app\Http\Requests\RoleUpdateCrudRequest as UpdateRequest;
|
||||
|
||||
/**
|
||||
* Class RoleCrudController
|
||||
* @package App\Http\Controllers\Admin
|
||||
* @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
|
||||
*/
|
||||
class RoleCrudController extends OrgController
|
||||
{
|
||||
public function setupCreateOperation()
|
||||
{
|
||||
$this->addFields();
|
||||
$this->crud->setValidation(StoreRequest::class);
|
||||
|
||||
//otherwise, changes won't have effect
|
||||
\Cache::forget('spatie.permission.cache');
|
||||
}
|
||||
|
||||
public function setupUpdateOperation()
|
||||
{
|
||||
$this->addFields();
|
||||
$this->crud->setValidation(UpdateRequest::class);
|
||||
|
||||
//otherwise, changes won't have effect
|
||||
\Cache::forget('spatie.permission.cache');
|
||||
}
|
||||
|
||||
private function addFields()
|
||||
{
|
||||
$this->crud->addField([
|
||||
'name' => 'slug',
|
||||
'label' => 'Slug',
|
||||
'type' => 'text',
|
||||
]);
|
||||
|
||||
$this->crud->addField([
|
||||
'name' => 'name',
|
||||
'label' => trans('backpack::permissionmanager.name'),
|
||||
'type' => 'text',
|
||||
]);
|
||||
|
||||
if (config('backpack.permissionmanager.multiple_guards')) {
|
||||
$this->crud->addField([
|
||||
'name' => 'guard_name',
|
||||
'label' => trans('backpack::permissionmanager.guard_type'),
|
||||
'type' => 'select_from_array',
|
||||
'options' => $this->getGuardTypes(),
|
||||
]);
|
||||
}
|
||||
|
||||
$this->crud->addField([
|
||||
'label' => mb_ucfirst(trans('backpack::permissionmanager.permission_plural')),
|
||||
'type' => 'checklist',
|
||||
'name' => 'permissions',
|
||||
'entity' => 'permissions',
|
||||
'attribute' => 'name',
|
||||
'model' => $this->permission_model,
|
||||
'pivot' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get an array list of all available guard types
|
||||
* that have been defined in app/config/auth.php
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
private function getGuardTypes()
|
||||
{
|
||||
$guards = config('auth.guards');
|
||||
|
||||
$returnable = [];
|
||||
foreach ($guards as $key => $details) {
|
||||
$returnable[$key] = $key;
|
||||
}
|
||||
|
||||
return $returnable;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user