BaseRoleController.php
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 重写laravel-admin Role 控制类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @package App\Admin\Rewrite\Controllers
* @package App\Admin\Rewrite\Controllers
* @author Richer <yangzi1028@163.com>
* @date 2020年3月23日,14:20:56
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Admin\Rewrite\Controllers;
use App\Admin\Rewrite\Form;
use Encore\Admin\Controllers\RoleController as EncoreRoleController;
use Encore\Admin\Grid;
use App\Admin\Rewrite\Show;
/**
* Class BaseRoleController
*
* @package App\Admin\Rewrite\Controllers
* @package App\Admin\Rewrite\Controllers
* @author Richer <yangzi1028@163.com>
* @date 2020年3月23日,14:20:56
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
class BaseRoleController extends EncoreRoleController
{
/**
* {@inheritdoc}
*/
protected function title()
{
return trans('admin.roles');
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$roleModel = config('admin.database.roles_model');
$grid = new Grid(new $roleModel());
$grid->column('id', 'ID')->sortable();
$grid->column('slug', trans('admin.slug'));
$grid->column('name', trans('admin.name'));
$grid->column('permissions', trans('admin.permission'))->pluck('name')->label();
$grid->column('created_at', trans('admin.created_at'));
$grid->column('updated_at', trans('admin.updated_at'));
$grid->actions(function (Grid\Displayers\Actions $actions) {
if ($actions->row->slug == 'administrator') {
$actions->disableDelete();
}
});
$grid->tools(function (Grid\Tools $tools) {
$tools->batch(function (Grid\Tools\BatchActions $actions) {
$actions->disableDelete();
});
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
$roleModel = config('admin.database.roles_model');
$show = new Show($roleModel::findOrFail($id));
$show->field('id', 'ID');
$show->field('slug', trans('admin.slug'));
$show->field('name', trans('admin.name'));
$show->field('permissions', trans('admin.permissions'))->as(function ($permission) {
return $permission->pluck('name');
})->label();
$show->field('created_at', trans('admin.created_at'));
$show->field('updated_at', trans('admin.updated_at'));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
public function form()
{
$permissionModel = config('admin.database.permissions_model');
$roleModel = config('admin.database.roles_model');
$form = new Form(new $roleModel());
$form->display('id', 'ID');
$form->text('slug', trans('admin.slug'))->rules('required');
$form->text('name', trans('admin.name'))->rules('required');
$form->listbox('permissions', trans('admin.permissions'))->options($permissionModel::all()->pluck('name', 'id'));
// 默认全部的权限
$form->hidden('permissions[]')->default(1);
$form->display('created_at', trans('admin.created_at'));
$form->display('updated_at', trans('admin.updated_at'));
return $form;
}
}