Small fixes

This commit is contained in:
RainLoop Team 2014-07-23 19:05:16 +04:00
parent b68a56cf6b
commit 5a762f5066
8 changed files with 61 additions and 20 deletions

View file

@ -1594,7 +1594,7 @@ class ImapClient extends \MailSo\Net\NetClient
$aResult = $aParams; $aResult = $aParams;
if (\is_array($aResult) && 2 === count($aResult)) if (\is_array($aResult) && 2 === count($aResult))
{ {
$aResult[1] = '"*******"'; $aResult[1] = '"********"';
} }
break; break;
} }

View file

@ -23,6 +23,11 @@ class Logger extends \MailSo\Base\Collection
*/ */
private $aSecretWords; private $aSecretWords;
/**
* @var bool
*/
private $bShowSecter;
/** /**
* @access protected * @access protected
*/ */
@ -33,6 +38,7 @@ class Logger extends \MailSo\Base\Collection
$this->bUsed = false; $this->bUsed = false;
$this->aForbiddenTypes = array(); $this->aForbiddenTypes = array();
$this->aSecretWords = array(); $this->aSecretWords = array();
$this->bShowSecter = false;
\register_shutdown_function(array(&$this, '__loggerShutDown')); \register_shutdown_function(array(&$this, '__loggerShutDown'));
} }
@ -87,6 +93,7 @@ class Logger extends \MailSo\Base\Collection
/** /**
* @param string $sWord * @param string $sWord
*
* @return bool * @return bool
*/ */
public function AddSecret($sWord) public function AddSecret($sWord)
@ -94,10 +101,30 @@ class Logger extends \MailSo\Base\Collection
if (0 < \strlen(\trim($sWord))) if (0 < \strlen(\trim($sWord)))
{ {
$this->aSecretWords[] = $sWord; $this->aSecretWords[] = $sWord;
$this->aSecretWords = array_unique($this->aSecretWords); $this->aSecretWords = \array_unique($this->aSecretWords);
} }
} }
/**
* @param bool $bShow
*
* @return \MailSo\Log\Logger
*/
public function SetShowSecter($bShow)
{
$this->bShowSecter = !!$bShow;
return $this;
}
/**
* @return bool
*/
public function IsShowSecter()
{
return $this->bShowSecter;
}
/** /**
* @param int $iType * @param int $iType
* *
@ -176,7 +203,7 @@ class Logger extends \MailSo\Base\Collection
$aLoggers = array(); $aLoggers = array();
$iResult = 1; $iResult = 1;
if ($bSearchWords && 0 < \count($this->aSecretWords)) if ($bSearchWords && !$this->bShowSecter && 0 < \count($this->aSecretWords))
{ {
$sDesc = \str_replace($this->aSecretWords, '*******', $sDesc); $sDesc = \str_replace($this->aSecretWords, '*******', $sDesc);
} }

View file

@ -334,6 +334,12 @@ abstract class NetClient
$bFake = 0 < \strlen($sFakeRaw); $bFake = 0 < \strlen($sFakeRaw);
$sRaw .= "\r\n"; $sRaw .= "\r\n";
if ($this->oLogger && $this->oLogger->IsShowSecter())
{
$bFake = false;
}
if ($bFake) if ($bFake)
{ {
$sFakeRaw .= "\r\n"; $sFakeRaw .= "\r\n";

View file

@ -256,7 +256,7 @@ class Pop3Client extends \MailSo\Net\NetClient
switch ($sCommand) switch ($sCommand)
{ {
case 'PASS': case 'PASS':
$sResult = '*******'; $sResult = '********';
break; break;
} }
} }

View file

@ -155,7 +155,7 @@ class PoppassdClient extends \MailSo\Net\NetClient
{ {
case 'pass': case 'pass':
case 'newpass': case 'newpass':
$sResult = '*******'; $sResult = '********';
break; break;
} }
} }

View file

@ -570,7 +570,7 @@ class SmtpClient extends \MailSo\Net\NetClient
$sCommand = \trim($sCommand); $sCommand = \trim($sCommand);
$sRealCommand = $sCommand.(0 === \strlen($sAddToCommand) ? '' : ' '.$sAddToCommand); $sRealCommand = $sCommand.(0 === \strlen($sAddToCommand) ? '' : ' '.$sAddToCommand);
$sFakeCommand = ($bSecureLog) ? '**********' : ''; $sFakeCommand = ($bSecureLog) ? '********' : '';
$this->iRequestTime = \microtime(true); $this->iRequestTime = \microtime(true);
$this->sendRaw($sRealCommand, true, $sFakeCommand); $this->sendRaw($sRealCommand, true, $sFakeCommand);

View file

@ -336,7 +336,7 @@ class Actions
if (false !== \strpos($sFileName, '{user:uid}')) if (false !== \strpos($sFileName, '{user:uid}'))
{ {
$sFileName = \str_replace('{user:uid}', $sFileName = \str_replace('{user:uid}',
\base_convert(\sprintf('%u', \crc32(md5(\RainLoop\Utils::GetConnectionToken()))), 10, 32), \base_convert(\sprintf('%u', \crc32(\md5(\RainLoop\Utils::GetConnectionToken()))), 10, 32),
$sFileName $sFileName
); );
} }
@ -346,6 +346,8 @@ class Actions
$sFileName = \str_replace('{user:ip}', $this->Http()->GetClientIp(), $sFileName); $sFileName = \str_replace('{user:ip}', $this->Http()->GetClientIp(), $sFileName);
} }
if (\preg_match('/\{user:(email|login|domain)\}/i', $sFileName))
{
$this->ParseQueryAuthString(); $this->ParseQueryAuthString();
$oAccount = $this->getAccountFromToken(false); $oAccount = $this->getAccountFromToken(false);
@ -356,8 +358,9 @@ class Actions
$sFileName = \str_replace('{user:login}', \MailSo\Base\Utils::GetAccountNameFromEmail($sEmail), $sFileName); $sFileName = \str_replace('{user:login}', \MailSo\Base\Utils::GetAccountNameFromEmail($sEmail), $sFileName);
$sFileName = \str_replace('{user:domain}', \MailSo\Base\Utils::GetDomainFromEmail($sEmail), $sFileName); $sFileName = \str_replace('{user:domain}', \MailSo\Base\Utils::GetDomainFromEmail($sEmail), $sFileName);
} }
}
$sFileName = \preg_replace('/\{user:([^}]*)\}/', 'unknown', $sFileName); $sFileName = \preg_replace('/\{user:([^}]*)\}/i', 'unknown', $sFileName);
} }
if (false !== \strpos($sFileName, '{labs:')) if (false !== \strpos($sFileName, '{labs:'))
@ -369,7 +372,7 @@ class Actions
$sFileName = \preg_replace('/\{labs:([^}]*)\}/', 'labs', $sFileName); $sFileName = \preg_replace('/\{labs:([^}]*)\}/', 'labs', $sFileName);
} }
if (0 === strlen($sFileName)) if (0 === \strlen($sFileName))
{ {
$sFileName = 'rainloop-log.txt'; $sFileName = 'rainloop-log.txt';
} }
@ -794,6 +797,8 @@ class Actions
if (!!$this->Config()->Get('logs', 'enable', true)) if (!!$this->Config()->Get('logs', 'enable', true))
{ {
$this->oLogger->SetShowSecter(!$this->Config()->Get('logs', 'hide_passwords', true));
$sLogFileFullPath = \APP_PRIVATE_DATA.'logs/'.$this->compileLogFileName(); $sLogFileFullPath = \APP_PRIVATE_DATA.'logs/'.$this->compileLogFileName();
$sLogFileDir = \dirname($sLogFileFullPath); $sLogFileDir = \dirname($sLogFileFullPath);

View file

@ -141,6 +141,9 @@ Values:
'write_on_error_only' => array(false, 'Logs entire request only if error occured'), 'write_on_error_only' => array(false, 'Logs entire request only if error occured'),
'write_on_timeout_only' => array(0, 'Logs entire request only if request timeout (in seconds) occured.'), 'write_on_timeout_only' => array(0, 'Logs entire request only if request timeout (in seconds) occured.'),
'hide_passwords' => array(true, 'Required for development purposes only.
Disabling this option is not recommended.'),
'filename' => array('log-{date:Y-m-d}.txt', 'filename' => array('log-{date:Y-m-d}.txt',
'Log filename. 'Log filename.
For security reasons, some characters are removed from filename. For security reasons, some characters are removed from filename.
@ -151,9 +154,9 @@ Patterns:
Detailed info: http://www.php.net/manual/en/function.date.php Detailed info: http://www.php.net/manual/en/function.date.php
{user:email} - Replaced by user\'s email address {user:email} - Replaced by user\'s email address
If user is not logged in, value is set to "unknown" If user is not logged in, value is set to "unknown"
{user:login} - Replaced by user\'s login {user:login} - Replaced by user\'s login (the user part of an email)
If user is not logged in, value is set to "unknown" If user is not logged in, value is set to "unknown"
{user:domain} - Replaced by user\'s domain name {user:domain} - Replaced by user\'s domain name (the domain part of an email)
If user is not logged in, value is set to "unknown" If user is not logged in, value is set to "unknown"
{user:uid} - Replaced by user\'s UID regardless of account currently used {user:uid} - Replaced by user\'s UID regardless of account currently used
{user:ip} - Replaced by user\'s IP address {user:ip} - Replaced by user\'s IP address