public function showAction() { $this->logger->entering(); $this->logger->info('Loading conversation'); $conversations = new Conversation(); $conversation = $conversations->find($this->_getParam('id'))->current(); $this->logger->info('Loading Item'); $item = $conversation->findParentItem(); $this->logger->info('Ensure authorized to view'); if ($this->session->user_id != $conversation->user_id && $this->session->user_id != $item->owner_id) { $this->flash->notice = "Invalid Action"; $this->_redirect('/'); } $this->logger->info('Loading Messages'); $messageRows = $conversation->findMessage(); foreach ($messageRows as $messageRow) { $message = $messageRow->toArray(); $message['user'] = $messageRow->findParentUser()->toArray(); $messages[] = $message; } $this->logger->info('Loading View'); $this->view->assign(array('conversation' => $conversation, 'messages' => $messages, 'item' => $item)); $this->logger->info('Rendering view'); $this->render(); $this->logger->exiting(); }
public function bug($id, $request) { $ticket = Ticket::find($id); $message = "Après étude de votre problème, il en résulte qu'il ne s'agit pas d'un incident isolé mais bien d'un problème technique interne à DreamVids (bug). Nous travaillons actuellement à la détection et à la résolution de ce bug mais nous ne pouvons vous donner de plus amples informations. Nous nous excusons pour la gêne occasionnée et vous remerçions de votre patience."; $this->mail($ticket, $message); if ($ticket->conv_id != '' && Conversation::exists($ticket->conv_id)) { Conversation::find($ticket->conv_id)->removeChannel(User::find(User::getIdByName($ticket->tech))->getMainChannel()); } $ticket->delete(); return new RedirectResponse(WEBROOT . 'admin/tickets'); }
public static function sendNew($sender, $conversation, $content, $timeOffset = 0) { $id = Message::generateId(6); $timestamp = Utils::tps() + $timeOffset; $message = Message::create(array('id' => $id, 'sender_id' => $sender, 'conversation_id' => $conversation, 'content' => $content, 'timestamp' => $timestamp)); $recep = array(); $members = explode(';', trim(Conversation::find($conversation)->members_ids, ';')); foreach ($members as $id) { if ($id != $sender) { $recep[] = trim(UserChannel::find($id)->admins_ids, ';'); } } $recep = ';' . implode(';', $recep) . ';'; $recep = ChannelAction::filterReceiver($recep, "pm"); ChannelAction::create(array('id' => ChannelAction::generateId(6), 'channel_id' => userChannel::find($sender)->id, 'recipients_ids' => $recep, 'type' => 'pm', 'target' => $conversation, 'timestamp' => $timestamp)); return $message; }
public function show($id) { if (FEUsersHelper::isLogged()) { $conversation = Conversation::find($id); if ($conversation) { if (FEUsersHelper::isCurrentUser($conversation->user1_id) || FEUsersHelper::isCurrentUser($conversation->user2_id)) { return View::make('frontend/messages/show')->with('user', User::find(Session::get('user')['id']))->with('conversations', $this->conversations)->with('conversation', $conversation); } else { return Redirect::to('message'); } } else { return Redirect::to('message'); } } else { return Redirect::to('/'); } }
public static function beforeSchemaUpdate() { $table = strtolower(get_called_class()); $schema = Schema::get(); $schemadef = $schema->getTableDef($table); // 2016-01-06 We have to make sure there is no conversation with id==0 since it will screw up auto increment resequencing if ($schemadef['fields']['id']['auto_increment']) { // since we already have auto incrementing ('serial') we can continue return; } // The conversation will be recreated in upgrade.php, which will // generate a new URI, but that's collateral damage for you. $conv = new Conversation(); $conv->id = 0; if ($conv->find()) { while ($conv->fetch()) { // Since we have filtered on 0 this only deletes such entries // which I have been afraid wouldn't work, but apparently does! // (I thought it would act as null or something and find _all_ conversation entries) $conv->delete(); } } }
public function create($request) { if (Session::isActive()) { $req = $request->getParameters(); Session::get()->last_visit = Utils::tps(); Session::get()->save(); if (isset($req['sender'], $req['conversation'], $req['content']) && !empty($req['conversation']) && !empty($req['sender']) && !empty($req['content'])) { $sender = Utils::secure($req['sender']); $conversation = Utils::secure($req['conversation']); $content = Utils::secure($req['content']); $channel = UserChannel::exists($sender) ? UserChannel::find($sender) : false; if ($channel && $channel->belongToUser(Session::get()->id) && ($conv = Conversation::find($conversation))) { if (!$conv->containsChannel($channel)) { return Utils::getUnauthorizedResponse(); } $message = Message::sendNew($sender, $conversation, $content); $messageData = array('id' => $message->id, 'avatar' => $channel->getAvatar(), 'pseudo' => $channel->name, 'text' => $content, 'mine' => 'true'); return new JsonResponse($messageData); } } } return new Response(500); }
public static function getUrlFromNotice(Notice $notice, $anchor = true) { $conv = new Conversation(); $conv->id = $notice->conversation; $conv->find(true); if (!$conv instanceof Conversation) { common_debug('Conversation does not exist for notice ID: ' . $notice->id); throw new NoResultException($conv); } return $conv->getUrl($anchor ? $notice->id : null); }
public function destroy($id, $request) { $req = $request->getParameters(); if (Session::isActive() && isset($req['channelId']) && ($channel = UserChannel::find($req['channelId']))) { $conv = Conversation::exists($id) ? Conversation::find($id) : false; if ($conv && $conv->containsChannel($channel)) { $conv->removeChannel($channel); return new Response(200); } } return new Response(500); }
function fixupConversationURIs() { printfnq("Ensuring all conversations have a URI..."); $conv = new Conversation(); $conv->whereAdd('uri IS NULL'); if ($conv->find()) { $rounds = 0; while ($conv->fetch()) { $uri = common_local_url('conversation', array('id' => $conv->id)); $sql = sprintf('UPDATE conversation SET uri="%1$s" WHERE id="%2$d";', $conv->escape($uri), $conv->id); $conv->query($sql); if (($conv->N - ++$rounds) % 500 == 0) { printfnq(sprintf(' %d items left...', $conv->N - $rounds)); } } } printfnq("DONE.\n"); }