Merge remote-tracking branch 'upstream/develop' into 1501-better-ostatus
This commit is contained in:
commit
1f23d691f3
18 changed files with 291 additions and 69 deletions
|
@ -20,13 +20,18 @@ class Emailer {
|
|||
|
||||
call_hooks('emailer_send_prepare', $params);
|
||||
|
||||
$email_textonly = False;
|
||||
if (x($params,"uid")) {
|
||||
$email_textonly = get_pconfig($params['uid'], "system", "email_textonly");
|
||||
}
|
||||
|
||||
$fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
|
||||
$messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
|
||||
|
||||
// generate a mime boundary
|
||||
$mimeBoundary =rand(0,9)."-"
|
||||
.rand(10000000000,9999999999)."-"
|
||||
.rand(10000000000,9999999999)."=:"
|
||||
.rand(10000000000,99999999999)."-"
|
||||
.rand(10000000000,99999999999)."=:"
|
||||
.rand(10000,99999);
|
||||
|
||||
// generate a multipart/alternative message header
|
||||
|
@ -44,11 +49,16 @@ class Emailer {
|
|||
"--" . $mimeBoundary . "\n" . // plain text section
|
||||
"Content-Type: text/plain; charset=UTF-8\n" .
|
||||
"Content-Transfer-Encoding: base64\n\n" .
|
||||
$textBody . "\n" .
|
||||
"--" . $mimeBoundary . "\n" . // text/html section
|
||||
"Content-Type: text/html; charset=UTF-8\n" .
|
||||
"Content-Transfer-Encoding: base64\n\n" .
|
||||
$htmlBody . "\n" .
|
||||
$textBody . "\n";
|
||||
|
||||
if (!$email_textonly && !is_null($htmlBody)){
|
||||
$multipartMessageBody .=
|
||||
"--" . $mimeBoundary . "\n" . // text/html section
|
||||
"Content-Type: text/html; charset=UTF-8\n" .
|
||||
"Content-Transfer-Encoding: base64\n\n" .
|
||||
$htmlBody . "\n";
|
||||
}
|
||||
$multipartMessageBody .=
|
||||
"--" . $mimeBoundary . "--\n"; // message ending
|
||||
|
||||
// send the message
|
||||
|
@ -58,6 +68,7 @@ class Emailer {
|
|||
'body' => $multipartMessageBody,
|
||||
'headers' => $messageHeader
|
||||
);
|
||||
echo "<pre>"; var_dump($hookdata); killme();
|
||||
call_hooks("emailer_send", $hookdata);
|
||||
$res = mail(
|
||||
$hookdata['to'], // send to address
|
||||
|
|
|
@ -96,24 +96,49 @@
|
|||
}
|
||||
|
||||
$user = $_SERVER['PHP_AUTH_USER'];
|
||||
$encrypted = hash('whirlpool',trim($_SERVER['PHP_AUTH_PW']));
|
||||
$password = $_SERVER['PHP_AUTH_PW'];
|
||||
$encrypted = hash('whirlpool',trim($password));
|
||||
|
||||
|
||||
/**
|
||||
* next code from mod/auth.php. needs better solution
|
||||
*/
|
||||
$record = null;
|
||||
|
||||
// process normal login request
|
||||
|
||||
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
||||
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||
dbesc(trim($user)),
|
||||
dbesc(trim($user)),
|
||||
dbesc($encrypted)
|
||||
$addon_auth = array(
|
||||
'username' => trim($user),
|
||||
'password' => trim($password),
|
||||
'authenticated' => 0,
|
||||
'user_record' => null
|
||||
);
|
||||
if(count($r)){
|
||||
$record = $r[0];
|
||||
} else {
|
||||
|
||||
/**
|
||||
*
|
||||
* A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record
|
||||
* Plugins should never set 'authenticated' except to indicate success - as hooks may be chained
|
||||
* and later plugins should not interfere with an earlier one that succeeded.
|
||||
*
|
||||
*/
|
||||
|
||||
call_hooks('authenticate', $addon_auth);
|
||||
|
||||
if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
|
||||
$record = $addon_auth['user_record'];
|
||||
}
|
||||
else {
|
||||
// process normal login request
|
||||
|
||||
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
||||
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||
dbesc(trim($user)),
|
||||
dbesc(trim($user)),
|
||||
dbesc($encrypted)
|
||||
);
|
||||
if(count($r))
|
||||
$record = $r[0];
|
||||
}
|
||||
|
||||
if((! $record) || (! count($record))) {
|
||||
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||
header('WWW-Authenticate: Basic realm="Friendica"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue