first commit
This commit is contained in:
77
app/Http/Controllers/Admin/UserCrudController.php
Normal file
77
app/Http/Controllers/Admin/UserCrudController.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use Backpack\PermissionManager\app\Http\Controllers\UserCrudController as OrgController;
|
||||
|
||||
/**
|
||||
* Class UserCrudController
|
||||
* @package App\Http\Controllers\Admin
|
||||
* @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
|
||||
*/
|
||||
class UserCrudController extends OrgController
|
||||
{
|
||||
public function setupListOperation()
|
||||
{
|
||||
$this->crud->addColumns([
|
||||
[
|
||||
'name' => 'name',
|
||||
'label' => trans('backpack::permissionmanager.name'),
|
||||
'type' => 'text',
|
||||
],
|
||||
[
|
||||
'name' => 'email',
|
||||
'label' => trans('backpack::permissionmanager.email'),
|
||||
'type' => 'email',
|
||||
],
|
||||
[ // n-n relationship (with pivot table)
|
||||
'label' => trans('backpack::permissionmanager.roles'), // Table column heading
|
||||
'type' => 'select_multiple',
|
||||
'name' => 'roles', // the method that defines the relationship in your Model
|
||||
'entity' => 'roles', // the method that defines the relationship in your Model
|
||||
'attribute' => 'name', // foreign key attribute that is shown to user
|
||||
'model' => config('permission.models.role'), // foreign key model
|
||||
],
|
||||
[ // n-n relationship (with pivot table)
|
||||
'label' => trans('backpack::permissionmanager.extra_permissions'), // Table column heading
|
||||
'type' => 'select_multiple',
|
||||
'name' => 'permissions', // the method that defines the relationship in your Model
|
||||
'entity' => 'permissions', // the method that defines the relationship in your Model
|
||||
'attribute' => 'name', // foreign key attribute that is shown to user
|
||||
'model' => config('permission.models.permission'), // foreign key model
|
||||
],
|
||||
]);
|
||||
|
||||
if (backpack_pro()) {
|
||||
// Role Filter
|
||||
$this->crud->addFilter(
|
||||
[
|
||||
'name' => 'role',
|
||||
'type' => 'dropdown',
|
||||
'label' => trans('backpack::permissionmanager.role'),
|
||||
],
|
||||
config('permission.models.role')::all()->pluck('name', 'id')->toArray(),
|
||||
function ($value) { // if the filter is active
|
||||
$this->crud->addClause('whereHas', 'roles', function ($query) use ($value) {
|
||||
$query->where('role_id', '=', $value);
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
// Extra Permission Filter
|
||||
$this->crud->addFilter(
|
||||
[
|
||||
'name' => 'permissions',
|
||||
'type' => 'select2',
|
||||
'label' => trans('backpack::permissionmanager.extra_permissions'),
|
||||
],
|
||||
config('permission.models.permission')::all()->pluck('name', 'id')->toArray(),
|
||||
function ($value) { // if the filter is active
|
||||
$this->crud->addClause('whereHas', 'permissions', function ($query) use ($value) {
|
||||
$query->where('permission_id', '=', $value);
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user