Exemplo n.º 1
0
/**
 * Validate admin level webservices token, with or without username
 *
 * @param $h Webservices
 *        token (admin users only)
 * @param $u Username
 *        (admin users only)
 * @return boolean FALSE if invalid, string username if valid
 */
function webservices_validate_admin($h, $u)
{
    $ret = false;
    $c_u = webservices_validate($h, $u);
    if ($u) {
        $status = user_getfieldbyusername($c_u, 'status');
        if ($status == 2) {
            $ret = $c_u;
        }
    }
    return $ret;
}
Exemplo n.º 2
0
/**
 * Validate admin level webservices token, with or without username
 *
 * @param $h Webservices
 *        token (admin users only)
 * @param $u Username
 *        (admin users only)
 * @return boolean FALSE if invalid, string username if valid
 */
function webservices_validate_admin($h, $u)
{
    $ret = false;
    if (preg_match('/^(.+)@(.+)\\.(.+)$/', $u)) {
        $u = user_email2username($u);
    }
    $c_u = webservices_validate($h, $u);
    if ($u) {
        $status = user_getfieldbyusername($c_u, 'status');
        if ($status == 2) {
            $ret = $c_u;
        }
    }
    return $ret;
}
Exemplo n.º 3
0
function recvsms_inbox_add($sms_datetime, $sms_sender, $target_user, $message, $sms_receiver = "", $reference_id = '')
{
    global $core_config;
    // sms to inbox will be handled by plugins first
    $ret_intercept = recvsms_inbox_add_intercept($sms_datetime, $sms_sender, $target_user, $message, $sms_receiver, $reference_id);
    if ($ret_intercept['param_modified']) {
        $sms_datetime = $ret_intercept['param']['sms_datetime'] ? $ret_intercept['param']['sms_datetime'] : $sms_datetime;
        $sms_sender = $ret_intercept['param']['sms_sender'] ? $ret_intercept['param']['sms_sender'] : $sms_sender;
        $target_user = $ret_intercept['param']['target_user'] ? $ret_intercept['param']['target_user'] : $target_user;
        $message = $ret_intercept['param']['message'] ? $ret_intercept['param']['message'] : $message;
        $sms_receiver = $ret_intercept['param']['sms_receiver'] ? $ret_intercept['param']['sms_receiver'] : $sms_receiver;
        $reference_id = $ret_intercept['param']['reference_id'] ? $ret_intercept['param']['reference_id'] : $reference_id;
    }
    $ok = FALSE;
    if ($sms_sender && $target_user && $message) {
        $user = user_getdatabyusername($target_user);
        if ($uid = $user['uid']) {
            // discard if banned
            if (user_banned_get($uid)) {
                logger_print("user banned, message ignored uid:" . $uid, 2, "recvsms_inbox_add");
                return FALSE;
            }
            // get name from target_user's phonebook
            $c_name = '';
            if (substr($sms_sender, 0, 1) == '@') {
                $c_username = str_replace('@', '', $sms_sender);
                $c_name = user_getfieldbyusername($c_username, 'name');
            } else {
                $c_name = phonebook_number2name($uid, $sms_sender);
            }
            $sender = $c_name ? $c_name . ' (' . $sms_sender . ')' : $sms_sender;
            // forward to Inbox
            if ($fwd_to_inbox = $user['fwd_to_inbox']) {
                $db_query = "\n\t\t\t\t\tINSERT INTO " . _DB_PREF_ . "_tblSMSInbox\n\t\t\t\t\t(in_sender,in_receiver,in_uid,in_msg,in_datetime,reference_id)\n\t\t\t\t\tVALUES ('{$sms_sender}','{$sms_receiver}','{$uid}','{$message}','" . core_adjust_datetime($sms_datetime) . "','{$reference_id}')\n\t\t\t\t";
                logger_print("saving sender:" . $sms_sender . " receiver:" . $sms_receiver . " target:" . $target_user . " reference_id:" . $reference_id, 2, "recvsms_inbox_add");
                if ($inbox_id = @dba_insert_id($db_query)) {
                    logger_print("saved id:" . $inbox_id . " sender:" . $sms_sender . " receiver:" . $sms_receiver . " target:" . $target_user, 2, "recvsms_inbox_add");
                    $ok = TRUE;
                }
            }
            // forward to email, consider site config too
            if ($parent_uid = user_getparentbyuid($uid)) {
                $site_config = site_config_get($parent_uid);
            }
            $web_title = $site_config['web_title'] ? $site_config['web_title'] : $core_config['main']['web_title'];
            $email_service = $site_config['email_service'] ? $site_config['email_service'] : $core_config['main']['email_service'];
            $email_footer = $site_config['email_footer'] ? $site_config['email_footer'] : $core_config['main']['email_footer'];
            $sms_receiver = $sms_receiver ? $sms_receiver : '-';
            if ($fwd_to_email = $user['fwd_to_email']) {
                if ($email = $user['email']) {
                    $subject = _('Message from') . " " . $sender;
                    $body = $web_title . "\n\n";
                    $body .= _('Message received at') . " " . $sms_receiver . " " . _('on') . " " . $sms_datetime . "\n\n";
                    $body .= _('From') . " " . $sender . "\n\n";
                    $body .= $message . "\n\n--\n";
                    $body .= $email_footer . "\n\n";
                    $body = stripslashes($body);
                    logger_print("send email from:" . $email_service . " to:" . $email . " message:[" . $message . "]", 3, "recvsms_inbox_add");
                    $data = array('mail_from_name' => $web_title, 'mail_from' => $email_service, 'mail_to' => $email, 'mail_subject' => $subject, 'mail_body' => $body);
                    sendmail($data);
                    logger_print("sent email from:" . $email_service . " to:" . $email, 3, "recvsms_inbox_add");
                }
            }
            // forward to mobile
            if ($fwd_to_mobile = $user['fwd_to_mobile']) {
                if ($mobile = $user['mobile']) {
                    // fixme anton
                    $c_message = $message . ' ' . $sender;
                    if ($sender_uid = user_mobile2uid($sms_sender)) {
                        if ($sender_username = user_uid2username($sender_uid)) {
                            $c_message = $message . ' ' . '@' . $sender_username;
                        }
                    }
                    $message = $c_message;
                    $unicode = core_detect_unicode($message);
                    $nofooter = TRUE;
                    logger_print("send to mobile:" . $mobile . " from:" . $sms_sender . " user:"******" message:" . $message, 3, "recvsms_inbox_add");
                    list($ok, $to, $smslog_id, $queue) = sendsms($target_user, $mobile, $message, 'text', $unicode, '', $nofooter);
                    if ($ok[0] == 1) {
                        logger_print("sent to mobile:" . $mobile . " from:" . $sms_sender . " user:"******"recvsms_inbox_add");
                    }
                }
            }
        }
    }
    return $ok;
}
Exemplo n.º 4
0
function sendsms_get_sender($username, $default_sender_id = '')
{
    global $core_config, $user_config;
    // get configured sender ID
    if ($username) {
        if ($core_config['main']['gateway_number']) {
            // 1st priority is "Default sender ID" from main configuration
            $sms_sender = $core_config['main']['gateway_number'];
        } else {
            // 2nd priority is "SMS sender ID" from user preferences
            $sms_sender = $user_config['sender'];
            if ($user_config['username'] != $username) {
                $c_sms_sender = user_getfieldbyusername($username, 'sender');
                // validate if $username is supplied
                if (sender_id_isvalid($username, $c_sms_sender)) {
                    $sms_sender = $c_sms_sender;
                }
            }
        }
    }
    // configured sender ID
    $sms_sender = core_sanitize_sender($sms_sender);
    // supplied sender ID as default in case configured sender ID is empty
    if (!$sms_sender && $default_sender_id) {
        $sms_sender = core_sanitize_sender($default_sender_id);
    }
    return $sms_sender;
}
Exemplo n.º 5
0
/**
 * Resolve sender number or name to contact name or account's name
 *
 * @param integer $uid
 * @param string $sender
 * @return string
 */
function report_resolve_sender($uid, $sender)
{
    $final_sender = "<div class='report_sender'>" . $sender . "</div>";
    if (substr($sender, 0, 1) == '@') {
        $sender = core_sanitize_username($sender);
        $desc = user_getfieldbyusername($sender, 'name');
    } else {
        $desc = phonebook_number2name($uid, $sender);
    }
    if ($desc) {
        $final_sender .= "<div class='report_sender_description'>" . $desc . "</div>";
    }
    return $final_sender;
}