57
57
use SLA ;
58
58
use SLM ;
59
59
use OLA ;
60
+ use QueryExpression ;
60
61
use QuerySubQuery ;
61
62
use QueryUnion ;
62
63
use GlpiPlugin \Formcreator \Exception \ComparisonException ;
@@ -227,9 +228,11 @@ public function buildParams($rand = null) {
227
228
$ currentUser = Session::getLoginUserID ();
228
229
if (!Session::haveRight (Ticket::$ rightname , Ticket::READMY ) && !Session::haveRight (Ticket::$ rightname , Ticket::READGROUP )) {
229
230
// No right to view any ticket, then force the dropdown to be empty
230
- $ dparams_cond_crit ['OR ' ] = new \ QueryExpression ('0=1 ' );
231
+ $ dparams_cond_crit ['OR ' ] = new QueryExpression ('0=1 ' );
231
232
break ;
232
233
}
234
+ $ tickets_filter = ['users_id_recipient ' => $ currentUser ];
235
+
233
236
if (Session::haveRight (Ticket::$ rightname , Ticket::READMY )) {
234
237
$ requestersObserversQuery = new QuerySubQuery ([
235
238
'SELECT ' => 'tickets_id ' ,
@@ -239,34 +242,23 @@ public function buildParams($rand = null) {
239
242
'type ' => [CommonITILActor::REQUESTER , CommonITILActor::OBSERVER ]
240
243
],
241
244
]);
242
- $ dparams_cond_crit [ ' OR ' ] = [
245
+ $ tickets_filter [ ] = [
243
246
'id ' => $ requestersObserversQuery ,
244
- 'users_id_recipient ' => $ currentUser ,
245
247
];
246
248
}
247
- if (Session::haveRight (Ticket::$ rightname , Ticket::READGROUP )) {
248
- $ sub_query = [
249
+
250
+ if (Session::haveRight (Ticket::$ rightname , Ticket::READGROUP ) && count ($ _SESSION ['glpigroups ' ]) > '0 ' ) {
251
+ $ requestersObserversGroupsQuery = new QuerySubQuery ([
249
252
'SELECT ' => 'tickets_id ' ,
250
253
'FROM ' => Group_Ticket::getTable (),
251
254
'WHERE ' => [
252
- 'type ' => [CommonITILActor::REQUESTER , CommonITILActor::OBSERVER ]
255
+ 'type ' => [CommonITILActor::REQUESTER , CommonITILActor::OBSERVER ],
256
+ 'groups_id ' => $ _SESSION ['glpigroups ' ],
253
257
],
254
- ];
255
- if (count ($ _SESSION ['glpigroups ' ]) > '0 ' ) {
256
- $ sub_query ['WHERE ' ]['groups_id ' ] = $ _SESSION ['glpigroups ' ];
257
- }
258
- $ requestersObserversGroupsQuery = new QuerySubQuery ($ sub_query );
259
- if (!isset ($ dparams_cond_crit ['OR ' ]['id ' ])) {
260
- $ dparams_cond_crit ['OR ' ] = [
261
- 'id ' => $ requestersObserversGroupsQuery ,
262
- ];
263
- } else {
264
- $ dparams_cond_crit ['OR ' ]['id ' ] = new QueryUnion ([
265
- $ dparams_cond_crit ['OR ' ]['id ' ],
266
- $ requestersObserversGroupsQuery ,
267
- ]);
268
- }
258
+ ]);
259
+ $ tickets_filter [] = ['id ' => $ requestersObserversGroupsQuery ];
269
260
}
261
+ $ dparams_cond_crit ['OR ' ] = $ tickets_filter ;
270
262
break ;
271
263
272
264
default :
0 commit comments