admin users menu
This commit is contained in:
parent
574bb12a43
commit
c0ddfec959
|
|
@ -0,0 +1,166 @@
|
|||
<?php
|
||||
|
||||
namespace Backpack\PermissionManager\app\Http\Controllers;
|
||||
|
||||
use Backpack\CRUD\app\Http\Controllers\CrudController;
|
||||
use Backpack\PermissionManager\app\Http\Requests\UserStoreCrudRequest as StoreRequest;
|
||||
use Backpack\PermissionManager\app\Http\Requests\UserUpdateCrudRequest as UpdateRequest;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class UserCrudController extends CrudController
|
||||
{
|
||||
public function setup()
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| BASIC CRUD INFORMATION
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
$this->crud->setModel(config('backpack.permissionmanager.models.user'));
|
||||
$this->crud->setEntityNameStrings(trans('backpack::permissionmanager.user'), trans('backpack::permissionmanager.users'));
|
||||
$this->crud->setRoute(backpack_url('user'));
|
||||
|
||||
// Columns.
|
||||
$this->crud->setColumns([
|
||||
[
|
||||
'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
|
||||
// ],
|
||||
]);
|
||||
|
||||
// Fields
|
||||
$this->crud->addFields([
|
||||
[
|
||||
'name' => 'name',
|
||||
'label' => trans('backpack::permissionmanager.name'),
|
||||
'type' => 'text',
|
||||
],
|
||||
[
|
||||
'name' => 'email',
|
||||
'label' => trans('backpack::permissionmanager.email'),
|
||||
'type' => 'email',
|
||||
],
|
||||
[
|
||||
'name' => 'password',
|
||||
'label' => trans('backpack::permissionmanager.password'),
|
||||
'type' => 'password',
|
||||
],
|
||||
[
|
||||
'name' => 'password_confirmation',
|
||||
'label' => trans('backpack::permissionmanager.password_confirmation'),
|
||||
'type' => 'password',
|
||||
],
|
||||
[
|
||||
'label' => 'Account',
|
||||
'name' => 'account_id',
|
||||
'type' => 'select',
|
||||
'entity' => 'account',
|
||||
'attribute' => 'email'
|
||||
]
|
||||
// [
|
||||
// // two interconnected entities
|
||||
// 'label' => trans('backpack::permissionmanager.user_role_permission'),
|
||||
// 'field_unique_name' => 'user_role_permission',
|
||||
// 'type' => 'checklist_dependency',
|
||||
// 'name' => 'roles_and_permissions', // the methods that defines the relationship in your Model
|
||||
// 'subfields' => [
|
||||
// 'primary' => [
|
||||
// 'label' => trans('backpack::permissionmanager.roles'),
|
||||
// 'name' => 'roles', // the method that defines the relationship in your Model
|
||||
// 'entity' => 'roles', // the method that defines the relationship in your Model
|
||||
// 'entity_secondary' => 'permissions', // 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
|
||||
// 'pivot' => true, // on create&update, do you need to add/delete pivot table entries?]
|
||||
// 'number_columns' => 3, //can be 1,2,3,4,6
|
||||
// ],
|
||||
// 'secondary' => [
|
||||
// 'label' => ucfirst(trans('backpack::permissionmanager.permission_singular')),
|
||||
// 'name' => 'permissions', // the method that defines the relationship in your Model
|
||||
// 'entity' => 'permissions', // the method that defines the relationship in your Model
|
||||
// 'entity_primary' => 'roles', // 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
|
||||
// 'pivot' => true, // on create&update, do you need to add/delete pivot table entries?]
|
||||
// 'number_columns' => 3, //can be 1,2,3,4,6
|
||||
// ],
|
||||
// ],
|
||||
// ],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in the database.
|
||||
*
|
||||
* @param StoreRequest $request - type injection used for validation using Requests
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function store(StoreRequest $request)
|
||||
{
|
||||
$this->handlePasswordInput($request);
|
||||
|
||||
$request->request->remove('roles_show');
|
||||
$request->request->remove('permissions_show');
|
||||
|
||||
return parent::storeCrud($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in the database.
|
||||
*
|
||||
* @param UpdateRequest $request - type injection used for validation using Requests
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function update(UpdateRequest $request)
|
||||
{
|
||||
$this->handlePasswordInput($request);
|
||||
|
||||
$request->request->remove('roles_show');
|
||||
$request->request->remove('permissions_show');
|
||||
|
||||
return parent::updateCrud($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle password input fields.
|
||||
*
|
||||
* @param Request $request
|
||||
*/
|
||||
protected function handlePasswordInput(Request $request)
|
||||
{
|
||||
// Remove fields not present on the user.
|
||||
$request->request->remove('password_confirmation');
|
||||
|
||||
// Encrypt password if specified.
|
||||
if ($request->input('password')) {
|
||||
$request->request->set('password', Hash::make($request->input('password')));
|
||||
} else {
|
||||
$request->request->remove('password');
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue