public function inprogress($id, $request) { $ticket = Ticket::find($id); if ($ticket->tech == '') { $ticket->tech = Session::get()->username; if (User::exists(array('id' => $ticket->user_id))) { $conv = Conversation::createNew('[Assistance] Demande #' . $ticket->id, Session::get()->getMainChannel(), ';' . User::find($ticket->user_id)->getMainChannel()->id . ';' . Session::get()->getMainChannel()->id . ';', 1, Session::get()->id); Message::sendNew(User::find($ticket->user_id)->getMainChannel()->id, $conv, $ticket->description); Message::sendNew(Session::get()->getMainChannel()->id, $conv, 'Bonjour, je suis ' . StaffContact::getShownName(Session::get()) . ' et j\'ai pris en charge votre demande d\'assistance. Cette conversation a été créée pour pouvoir discuter avec vous. ATTENTION: Ne communiquez jamais votre mot de passe, même à un technicien ! Un vrai technicien a à sa disposition tous les outils nécessaires à la résolution de votre problème !', 1); $ticket->conv_id = $conv; } $ticket->save(); $message = "Votre demande d'assistance a été prise en charge par {{tech}}. Vous serez prochainement avertit de l'issue de l'intervention."; $this->mail($ticket, $message); } return new RedirectResponse(WEBROOT . 'admin/tickets'); }
public function create($request) { if (Session::isActive()) { $req = $request->getParameters(); if (isset($req['members'], $req['creator'], $req['subject']) && !empty($req['members']) && !empty($req['creator'])) { $membersStr = Utils::secure($req['members']); $creator = Utils::secure($req['creator']); $subject = Utils::secure($req['subject']); $subject = !empty($subject) ? $subject : 'Sans titre'; if ($sender = UserChannel::find($creator)) { if (Utils::stringStartsWith($membersStr, ';')) { $membersStr = substr_replace($membersStr, '', 0, 1); } if (Utils::stringEndsWith($membersStr, ';')) { $membersStr = substr_replace($membersStr, '', -1); } $membersStr = preg_replace('/\\s+/', '', $membersStr); $membersIdsFinal = ';'; if (strpos($membersStr, ';')) { foreach (explode(';', $membersStr) as $destId) { if ($dest = UserChannel::find_by_name($destId)) { $membersIdsFinal .= $dest->id . ';'; } else { $response = new Response(500); $response->setBody('Error: Le destinataire <' . $destId . '> n\'existe pas !'); return $response; } } } else { if ($chann = UserChannel::find_by_name($membersStr)) { $membersIdsFinal .= $chann->id . ';'; } else { $response = new Response(500); $response->setBody('Error: les destinataires doivent être séparés par un \';\' !'); return $response; } } if ($membersIdsFinal != ';') { $membersIdsFinal .= $sender->id . ';'; Conversation::createNew($subject, $sender, $membersIdsFinal); return new Response(200); } } } } return new Response(500); }