78 lines
3.2 KiB
PHP
78 lines
3.2 KiB
PHP
<?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);
|
|
});
|
|
}
|
|
);
|
|
}
|
|
}
|
|
}
|