Skip to content

Commit

Permalink
Merge pull request #40036 from nextcloud/fix/stable25/log-condition-user
Browse files Browse the repository at this point in the history
[stable25] fix(logging): user log condition feature
  • Loading branch information
blizzz committed Sep 7, 2023
2 parents 35d1102 + 66c6bc0 commit 08f964e
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions lib/private/Log.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@

use Exception;
use Nextcloud\LogNormalizer\Normalizer;
use OC\AppFramework\Bootstrap\Coordinator;
use OCP\Log\IDataLogger;
use Throwable;
use function array_merge;
use OC\Log\ExceptionSerializer;
use OCP\ILogger;
use OCP\IUserSession;
use OCP\Log\IDataLogger;
use OCP\Log\IFileBased;
use OCP\Log\IWriter;
use OCP\Support\CrashReport\IRegistry;
use OC\AppFramework\Bootstrap\Coordinator;
use OC\Log\ExceptionSerializer;
use Throwable;
use function array_merge;
use function strtr;

/**
Expand All @@ -59,7 +60,6 @@
* MonoLog is an example implementing this interface.
*/
class Log implements ILogger, IDataLogger {

/** @var IWriter */
private $logger;

Expand Down Expand Up @@ -247,7 +247,6 @@ public function getLogLevel($context) {
// default to false to just process this once per request
$this->logConditionSatisfied = false;
if (!empty($logCondition)) {

// check for secret token in the request
if (isset($logCondition['shared_secret'])) {
$request = \OC::$server->getRequest();
Expand All @@ -268,10 +267,13 @@ public function getLogLevel($context) {

// check for user
if (isset($logCondition['users'])) {
$user = \OC::$server->getUserSession()->getUser();
$user = \OCP\Server::get(IUserSession::class)->getUser();

// if the user matches set the log condition to satisfied
if ($user !== null && in_array($user->getUID(), $logCondition['users'], true)) {
if ($user === null) {
// User is not known for this request yet
$this->logConditionSatisfied = null;
} elseif (in_array($user->getUID(), $logCondition['users'], true)) {
// if the user matches set the log condition to satisfied
$this->logConditionSatisfied = true;
}
}
Expand Down

0 comments on commit 08f964e

Please sign in to comment.