function ajax_send_message() { if (Auth::guest()) { exit; } $to = isset($_POST['to']) ? (int) $_POST['to'] : null; $message = isset($_POST['message']) ? $_POST['message'] : null; if (!$to || !$message) { exit; } $limit = Config::get('pms.limit'); $maxlength = Config::get('pms.maxlength'); $contact = Contact::check(Auth::user()->id, $to); $webmaster = $to == (int) Config::get('pms.webmaster'); if (!$contact && !$webmaster && !Auth::userCan('message_users')) { json_message(trans('errors.contact'), false); } if (Message::limitExceed($limit, App::make('session')) && !Auth::userCan('message_users')) { json_message(trans('errors.message_limit'), false); } $message = Message::send(Auth::user()->id, $to, $message, $maxlength); if (is_array($message)) { $email = Usermeta::get($to, 'email_messages', true); if (!empty($email)) { $user = User::find($to); if ($user) { Mail::send('emails.message', array('body' => $message), function ($message) use($user) { $message->to($user->email); $message->subject(trans('emails.new_message_subject', array('user' => Auth::user()->display_name))); }); } } json_message($message); } else { json_message(is_object($message) ? $message->toArray() : trans('errors.dbsave'), false); } }