1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace App\Admin\Sections; |
4
|
|
|
|
5
|
|
|
use AdminColumn; |
|
|
|
|
6
|
|
|
use AdminDisplay; |
|
|
|
|
7
|
|
|
use AdminForm; |
|
|
|
|
8
|
|
|
use AdminFormElement; |
|
|
|
|
9
|
|
|
use App\Role; |
10
|
|
|
use SleepingOwl\Admin\Contracts\Initializable; |
11
|
|
|
use SleepingOwl\Admin\Form\Buttons\Cancel; |
12
|
|
|
//use SleepingOwl\Admin\Form\Buttons\Save; |
13
|
|
|
use SleepingOwl\Admin\Form\Buttons\SaveAndClose; |
14
|
|
|
use SleepingOwl\Admin\Section; |
15
|
|
|
|
16
|
|
|
class Users extends Section implements Initializable |
17
|
|
|
{ |
18
|
|
|
public function initialize() |
19
|
|
|
{ |
20
|
|
|
} |
21
|
|
|
|
22
|
|
|
protected $checkAccess = true; |
23
|
|
|
protected $alias = 'users'; |
24
|
|
|
|
25
|
|
|
public function getIcon() |
26
|
|
|
{ |
27
|
|
|
return 'fa fa-user'; |
28
|
|
|
} |
29
|
|
|
|
30
|
|
|
public function getTitle() |
31
|
|
|
{ |
32
|
|
|
return 'Пользователи'; |
33
|
|
|
} |
34
|
|
|
|
35
|
|
|
public function getEditTitle() |
36
|
|
|
{ |
37
|
|
|
return 'Редактирование пользователя'; |
38
|
|
|
} |
39
|
|
|
|
40
|
|
|
public function getCreateTitle() |
41
|
|
|
{ |
42
|
|
|
return 'Добавление пользователя'; |
43
|
|
|
} |
44
|
|
|
|
45
|
|
|
public function onDisplay() |
46
|
|
|
{ |
47
|
|
|
$display = AdminDisplay::datatables() |
48
|
|
|
->setHtmlAttribute('class', 'table-primary table-hover') |
49
|
|
|
->setDisplaySearch(true); |
50
|
|
|
|
51
|
|
|
$display->setColumns([ |
52
|
|
|
AdminColumn::text('id', '#') |
53
|
|
|
->setWidth('50px') |
54
|
|
|
->setHtmlAttribute('class', 'text-center'), |
55
|
|
|
AdminColumn::gravatar('email', 'Ava'), |
56
|
|
|
AdminColumn::link('email', 'Email'), |
57
|
|
|
AdminColumn::text('name', 'Имя'), |
58
|
|
|
AdminColumn::text('roles.name', 'Права') |
59
|
|
|
->setWidth('150px') |
60
|
|
|
->setOrderable(false) |
61
|
|
|
->setSearchCallback(function ($column, $query, $search) { |
62
|
|
|
return $query->orWhereHas('roles', function ($q) use ($search) { |
63
|
|
|
$q->where('name', 'like', '%'.$search.'%'); |
64
|
|
|
}); |
65
|
|
|
}), |
66
|
|
|
AdminColumn::boolean('active', 'Вход'), |
67
|
|
|
AdminColumn::text('created_at', 'Создан') |
68
|
|
|
->setWidth('160px') |
69
|
|
|
->setSearchable(false), |
70
|
|
|
]); |
71
|
|
|
|
72
|
|
|
return $display; |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
public function onEdit($id) |
|
|
|
|
76
|
|
|
{ |
77
|
|
|
$form = AdminForm::panel()->addBody([ |
78
|
|
|
AdminFormElement::columns()->addColumn([ |
79
|
|
|
AdminFormElement::text('name', 'Имя') |
80
|
|
|
->addValidationRule('max:190', __('adm.valid.max190')) |
81
|
|
|
->required(), |
82
|
|
|
AdminFormElement::text('email', 'Почта') |
83
|
|
|
->required() |
84
|
|
|
->unique() |
85
|
|
|
->addValidationRule('max:190', __('adm.valid.max190')), |
86
|
|
|
AdminFormElement::select('role_id', 'Права', Role::class) |
87
|
|
|
->setDisplay('name') |
88
|
|
|
->required() |
89
|
|
|
->setSortable(false), |
90
|
|
|
AdminFormElement::select('lang', 'Язык сайта', config('app.locales')) |
91
|
|
|
->required() |
92
|
|
|
->setSortable(false), |
93
|
|
|
AdminFormElement::password('newpassword', 'Пароль (не заполнить - не сменится)') |
94
|
|
|
->allowEmptyValue() |
95
|
|
|
->addValidationRule('nullable') |
96
|
|
|
->addValidationRule('between:8,50', 'От 8 до 50 символов'), |
97
|
|
|
], 8)->addColumn([ |
98
|
|
|
AdminFormElement::text('id', '#') |
99
|
|
|
->setReadonly(1), |
100
|
|
|
AdminFormElement::checkbox('blocked', 'Блокировать пользователя'), |
101
|
|
|
AdminFormElement::html('<hr>'), |
102
|
|
|
AdminFormElement::text('created_at', 'Создан') |
103
|
|
|
->setReadonly(1), |
104
|
|
|
AdminFormElement::text('signup_ip', 'IP регистрации') |
105
|
|
|
->setReadonly(1), |
106
|
|
|
AdminFormElement::text('confirm_ip', 'IP активации почты') |
107
|
|
|
->setReadonly(1), |
108
|
|
|
|
109
|
|
|
]), |
110
|
|
|
AdminFormElement::html('<hr>'), |
111
|
|
|
AdminFormElement::checkbox('active', 'Включен'), |
112
|
|
|
]); |
113
|
|
|
|
114
|
|
|
$form->getButtons()->setButtons([ |
115
|
|
|
// 'save' => new Save(), |
116
|
|
|
'save_and_close' => new SaveAndClose(), |
117
|
|
|
'cancel' => (new Cancel()), |
118
|
|
|
]); |
119
|
|
|
|
120
|
|
|
return $form; |
121
|
|
|
} |
122
|
|
|
|
123
|
|
|
public function onCreate() |
124
|
|
|
{ |
125
|
|
|
return $this->onEdit(null); |
126
|
|
|
} |
127
|
|
|
|
128
|
|
|
public function onDelete($id) |
|
|
|
|
129
|
|
|
{ |
130
|
|
|
} |
131
|
|
|
} |
132
|
|
|
|
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths