Ejemplo n.º 1
0
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);
    }
}