/** * 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; }
/** * 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; }
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; }
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; }
/** * 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; }