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');
 }
Exemple #2
0
 /**
  * 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();
 }