Passed
Push — devel-3.0 ( af8b21...5a06ca )
by Rubén
03:22
created

ItemPresetGrid::getCreateAccountPasswordAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 19
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nc 1
nop 0
dl 0
loc 19
rs 9.8666
c 0
b 0
f 0
1
<?php
2
/**
3
 * sysPass
4
 *
5
 * @author    nuxsmin
6
 * @link      https://syspass.org
7
 * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
8
 *
9
 * This file is part of sysPass.
10
 *
11
 * sysPass is free software: you can redistribute it and/or modify
12
 * it under the terms of the GNU General Public License as published by
13
 * the Free Software Foundation, either version 3 of the License, or
14
 * (at your option) any later version.
15
 *
16
 * sysPass is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 *  along with sysPass.  If not, see <http://www.gnu.org/licenses/>.
23
 */
24
25
namespace SP\Modules\Web\Controllers\Helpers\Grid;
26
27
use SP\Core\Acl\Acl;
28
use SP\Core\Acl\ActionsInterface;
29
use SP\Html\DataGrid\DataGridAction;
30
use SP\Html\DataGrid\DataGridActionSearch;
31
use SP\Html\DataGrid\DataGridActionType;
32
use SP\Html\DataGrid\DataGridData;
33
use SP\Html\DataGrid\DataGridHeader;
34
use SP\Html\DataGrid\DataGridInterface;
35
use SP\Html\DataGrid\DataGridTab;
36
use SP\Services\ItemPreset\ItemPresetInterface;
37
use SP\Storage\Database\QueryResult;
38
39
/**
40
 * Class AccountDefaultPermissionGrid
41
 *
42
 * @package SP\Modules\Web\Controllers\Helpers\Grid
43
 */
44
final class ItemPresetGrid extends GridBase
45
{
46
    /**
47
     * @var QueryResult
48
     */
49
    private $queryResult;
50
51
    /**
52
     * @param QueryResult $queryResult
53
     *
54
     * @return DataGridInterface
55
     */
56
    public function getGrid(QueryResult $queryResult): DataGridInterface
57
    {
58
        $this->queryResult = $queryResult;
59
60
        $grid = $this->getGridLayout();
61
62
        $searchAction = $this->getSearchAction();
63
64
        $grid->setDataActions($this->getSearchAction());
65
        $grid->setPager($this->getPager($searchAction));
66
67
        $grid->setDataActions($this->getCreatePermissionAction(), true);
68
        $grid->setDataActions($this->getCreatePrivateAction(), true);
69
        $grid->setDataActions($this->getCreateSessionTimeoutAction(), true);
70
        $grid->setDataActions($this->getCreateAccountPasswordAction(), true);
71
        $grid->setDataActions($this->getEditAction());
72
        $grid->setDataActions($this->getDeleteAction());
73
        $grid->setDataActions($this->getDeleteAction()
74
            ->setTitle(__('Eliminar Seleccionados'))
75
            ->setName(__('Eliminar Seleccionados')), true);
76
77
        $grid->setTime(round(getElapsedTime($this->queryTimeStart), 5));
0 ignored issues
show
Bug introduced by
round(getElapsedTime($this->queryTimeStart), 5) of type double is incompatible with the type integer expected by parameter $time of SP\Html\DataGrid\DataGridBase::setTime(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

77
        $grid->setTime(/** @scrutinizer ignore-type */ round(getElapsedTime($this->queryTimeStart), 5));
Loading history...
78
79
        return $grid;
80
    }
81
82
    /**
83
     * @return DataGridInterface
84
     */
85
    protected function getGridLayout(): DataGridInterface
86
    {
87
        // Grid
88
        $gridTab = new DataGridTab($this->view->getTheme());
89
        $gridTab->setId('tblItemPreset');
90
        $gridTab->setDataRowTemplate('datagrid-rows', 'grid');
91
        $gridTab->setDataPagerTemplate('datagrid-nav-full', 'grid');
92
        $gridTab->setHeader($this->getHeader());
93
        $gridTab->setData($this->getData());
94
        $gridTab->setTitle(__('Valores Predeterminados'));
95
96
        return $gridTab;
97
    }
98
99
    /**
100
     * @return DataGridHeader
101
     */
102
    protected function getHeader(): DataGridHeader
103
    {
104
        // Grid Header
105
        $gridHeader = new DataGridHeader();
106
        $gridHeader->addHeader(__('Tipo'));
107
        $gridHeader->addHeader(__('Usuario'));
108
        $gridHeader->addHeader(__('Grupo'));
109
        $gridHeader->addHeader(__('Perfil'));
110
        $gridHeader->addHeader(__('Prioridad'));
111
        $gridHeader->addHeader(__('Forzado'));
112
113
        return $gridHeader;
114
    }
115
116
    /**
117
     * @return DataGridData
118
     */
119
    protected function getData(): DataGridData
120
    {
121
        // Grid Data
122
        $gridData = new DataGridData();
123
        $gridData->setDataRowSourceId('id');
124
        $gridData->addDataRowSource('type');
125
        $gridData->addDataRowSource('userName');
126
        $gridData->addDataRowSource('userGroupName');
127
        $gridData->addDataRowSource('userProfileName');
128
        $gridData->addDataRowSource('priority');
129
        $gridData->addDataRowSourceWithIcon('fixed', $this->icons->getIconEnabled());
130
        $gridData->setData($this->queryResult);
131
132
        return $gridData;
133
    }
134
135
    /**
136
     * @return DataGridActionSearch
137
     */
138
    private function getSearchAction()
139
    {
140
        // Grid Actions
141
        $gridActionSearch = new DataGridActionSearch();
142
        $gridActionSearch->setId(ActionsInterface::ITEMPRESET_SEARCH);
143
        $gridActionSearch->setType(DataGridActionType::SEARCH_ITEM);
144
        $gridActionSearch->setName('frmSearchItemPreset');
145
        $gridActionSearch->setTitle(__('Buscar Valor'));
146
        $gridActionSearch->setOnSubmitFunction('appMgmt/search');
147
        $gridActionSearch->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_SEARCH));
148
149
        return $gridActionSearch;
150
    }
151
152
    /**
153
     * @return DataGridAction
154
     */
155
    private function getCreatePermissionAction()
156
    {
157
        $gridAction = new DataGridAction();
158
        $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE);
159
        $gridAction->setType(DataGridActionType::MENUBAR_ITEM);
160
        $gridAction->setName(__('Valor de Permiso'));
161
        $gridAction->setTitle(__('Nuevo Valor de Permiso'));
162
163
        $icon = clone $this->icons->getIconAdd();
164
165
        $gridAction->setIcon($icon->setIcon('add_circle'));
166
        $gridAction->setSkip(true);
167
        $gridAction->setOnClickFunction('appMgmt/show');
168
169
        $route = Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/' . ItemPresetInterface::ITEM_TYPE_ACCOUNT_PERMISSION;
170
171
        $gridAction->addData('action-route', $route);
172
173
        return $gridAction;
174
    }
175
176
    /**
177
     * @return DataGridAction
178
     */
179
    private function getCreatePrivateAction()
180
    {
181
        $gridAction = new DataGridAction();
182
        $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE);
183
        $gridAction->setType(DataGridActionType::MENUBAR_ITEM);
184
        $gridAction->setName(__('Valor de Cuenta Privada'));
185
        $gridAction->setTitle(__('Nuevo Valor de Cuenta Privada'));
186
187
        $icon = clone $this->icons->getIconAdd();
188
189
        $gridAction->setIcon($icon->setIcon('add_circle'));
190
        $gridAction->setSkip(true);
191
        $gridAction->setOnClickFunction('appMgmt/show');
192
193
        $route = Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/' . ItemPresetInterface::ITEM_TYPE_ACCOUNT_PRIVATE;
194
195
        $gridAction->addData('action-route', $route);
196
197
        return $gridAction;
198
    }
199
200
    /**
201
     * @return DataGridAction
202
     */
203
    private function getCreateSessionTimeoutAction()
204
    {
205
        $gridAction = new DataGridAction();
206
        $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE);
207
        $gridAction->setType(DataGridActionType::MENUBAR_ITEM);
208
        $gridAction->setName(__('Valor de Timeout de Sesión'));
209
        $gridAction->setTitle(__('Nuevo Valor de Timeout de Sesión'));
210
211
        $icon = clone $this->icons->getIconAdd();
212
213
        $gridAction->setIcon($icon->setIcon('add_circle'));
214
        $gridAction->setSkip(true);
215
        $gridAction->setOnClickFunction('appMgmt/show');
216
217
        $route = Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/' . ItemPresetInterface::ITEM_TYPE_SESSION_TIMEOUT;
218
219
        $gridAction->addData('action-route', $route);
220
221
        return $gridAction;
222
    }
223
224
    /**
225
     * @return DataGridAction
226
     */
227
    private function getCreateAccountPasswordAction()
228
    {
229
        $gridAction = new DataGridAction();
230
        $gridAction->setId(ActionsInterface::ITEMPRESET_CREATE);
231
        $gridAction->setType(DataGridActionType::MENUBAR_ITEM);
232
        $gridAction->setName(__('Valor de Clave de Cuentas'));
233
        $gridAction->setTitle(__('Nuevo Valor de Clave de Cuentas'));
234
235
        $icon = clone $this->icons->getIconAdd();
236
237
        $gridAction->setIcon($icon->setIcon('add_circle'));
238
        $gridAction->setSkip(true);
239
        $gridAction->setOnClickFunction('appMgmt/show');
240
241
        $route = Acl::getActionRoute(ActionsInterface::ITEMPRESET_CREATE) . '/' . ItemPresetInterface::ITEM_TYPE_ACCOUNT_PASSWORD;
242
243
        $gridAction->addData('action-route', $route);
244
245
        return $gridAction;
246
    }
247
248
    /**
249
     * @return DataGridAction
250
     */
251
    private function getEditAction()
252
    {
253
        $gridAction = new DataGridAction();
254
        $gridAction->setId(ActionsInterface::ITEMPRESET_EDIT);
255
        $gridAction->setType(DataGridActionType::EDIT_ITEM);
256
        $gridAction->setName(__('Editar Valor'));
257
        $gridAction->setTitle(__('Editar Valor'));
258
        $gridAction->setIcon($this->icons->getIconEdit());
259
        $gridAction->setOnClickFunction('appMgmt/show');
260
        $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_EDIT));
261
262
        return $gridAction;
263
    }
264
265
    /**
266
     * @return DataGridAction
267
     */
268
    private function getDeleteAction()
269
    {
270
        $gridAction = new DataGridAction();
271
        $gridAction->setId(ActionsInterface::ITEMPRESET_DELETE);
272
        $gridAction->setType(DataGridActionType::DELETE_ITEM);
273
        $gridAction->setName(__('Eliminar Valor'));
274
        $gridAction->setTitle(__('Eliminar Valor'));
275
        $gridAction->setIcon($this->icons->getIconDelete());
276
        $gridAction->setOnClickFunction('appMgmt/delete');
277
        $gridAction->addData('action-route', Acl::getActionRoute(ActionsInterface::ITEMPRESET_DELETE));
278
279
        return $gridAction;
280
    }
281
}