@@ -419,6 +419,61 @@ static function beforeAdd(Ticket $ticket) {
419419 }
420420 $ ticket ->input ['_actors ' ] = $ actors ;
421421 }
422+
423+ if ($ config ->getField ('use_assign_user_group ' ) > 0 ) {
424+
425+ if (isset ($ ticket ->input ['_actors ' ])) {
426+ $ actors = ($ ticket ->input ['_actors ' ] ?? []);
427+ }
428+
429+ if (isset ($ actors ['assign ' ])) {
430+ $ assigns = $ actors ['assign ' ];
431+ // Select first group of this user
432+ $ ko = 0 ;
433+ $ grp = 0 ;
434+ $ grps = [];
435+ foreach ($ assigns as $ assign ) {
436+ if ($ config ->getField ('use_assign_user_group ' ) == 1 ) {
437+ // First group
438+ if ($ assign ['itemtype ' ] == 'User ' ) {
439+ $ grp = PluginBehaviorsUser::getTechnicianGroup ($ ticket ->input ['entities_id ' ],
440+ $ assign ['items_id ' ],
441+ true );
442+ }
443+ if ($ grp > 0 && $ assign ['itemtype ' ] == 'Group '
444+ && $ assign ['items_id ' ] == $ grp ) {
445+ $ ko ++;
446+ }
447+ if ($ grp > 0 && $ ko == 0 ) {
448+ $ actors ['assign ' ][] = ['itemtype ' => 'Group ' ,
449+ 'items_id ' => $ grp ,
450+ 'use_notification ' => "1 " ,
451+ 'alternative_email ' => "" ];
452+ }
453+ } else {
454+ // All groups
455+ if ($ assign ['itemtype ' ] == 'User ' ) {
456+ $ grps = PluginBehaviorsUser::getTechnicianGroup ($ ticket ->input ['entities_id ' ],
457+ $ assign ['items_id ' ],
458+ false );
459+ }
460+ if ($ assign ['itemtype ' ] == 'Group '
461+ && in_array ($ assign ['items_id ' ], $ grps )) {
462+ unset($ grps [$ assign ['items_id ' ]]);
463+ }
464+ if (count ($ grps ) > 0 ) {
465+ foreach ($ grps as $ grp ) {
466+ $ actors ['assign ' ][] = ['itemtype ' => 'Group ' ,
467+ 'items_id ' => $ grp ,
468+ 'use_notification ' => "1 " ,
469+ 'alternative_email ' => "" ];
470+ }
471+ }
472+ }
473+ }
474+ }
475+ $ ticket ->input ['_actors ' ] = $ actors ;
476+ }
422477 if ($ config ->getField ('ticketsolved_updatetech ' )
423478 && (isset ($ ticket ->input ['status ' ])
424479 && in_array ($ ticket ->input ['status ' ], array_merge (Ticket::getSolvedStatusArray (),
0 commit comments