public function destroy($id) { $message = Message::findOrFail($id); if ($message->receiver_id != user()->id and $message->creator_id != user()->id) { $this->alertError(trans('app.access_denied')); return; } if ($message->creator_id == user()->id) { $message->creator_visible = false; $message->save(); } if ($message->receiver_id == user()->id) { $message->receiver_visible = false; $message->save(); } if ((!$message->creator_visible or $message->sent_by_system) and !$message->receiver_visible) { Message::destroy($id); } $this->alertFlash(trans('app.deleted', ['Message'])); return Redirect::to('messages/inbox'); }
/** * Creates a new message that addresses this user * * @param string $title The message title * @param string $text The message text * @param int $creatorId The user ID of the creator * @param boolean $sentBySystem [description] * @return void */ public function sendMessage($title, $text, $creatorId = null, $sentBySystem = false) { if (!$creatorId) { if (user()) { $creatorId = user()->id; } else { $creatorId = 1; // Daemon $sentBySystem = true; } } $message = new Message(['title' => $title, 'text' => $text]); $message->creator_id = $creatorId; $message->updater_id = $creatorId; $message->receiver_id = $this->id; $message->sent_by_system = true; $message->createSlug(); $message->save(); }