mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 09:42:09 -04:00
Merge pull request #56028 from nextcloud/backport/55910/stable31
Some checks are pending
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
Some checks are pending
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable31, 8.1, stable31, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
[stable31] fix(bfp): Trim meta data so it can still be stored
This commit is contained in:
commit
0c2f05966c
1 changed files with 22 additions and 3 deletions
|
|
@ -37,7 +37,8 @@ class DatabaseBackend implements IBackend {
|
|||
$query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
|
||||
|
||||
if ($metadata !== null) {
|
||||
$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter(json_encode($metadata))));
|
||||
$trimmedMetaData = $this->trimMetaData($metadata);
|
||||
$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,7 +65,8 @@ class DatabaseBackend implements IBackend {
|
|||
$query->andWhere($query->expr()->eq('action', $query->createNamedParameter($action)));
|
||||
|
||||
if ($metadata !== null) {
|
||||
$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter(json_encode($metadata))));
|
||||
$trimmedMetaData = $this->trimMetaData($metadata);
|
||||
$query->andWhere($query->expr()->eq('metadata', $query->createNamedParameter($trimmedMetaData)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -85,15 +87,32 @@ class DatabaseBackend implements IBackend {
|
|||
'ip' => $ip,
|
||||
'subnet' => $ipSubnet,
|
||||
'action' => $action,
|
||||
'metadata' => json_encode($metadata),
|
||||
'metadata' => $metadata,
|
||||
'occurred' => $timestamp,
|
||||
];
|
||||
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->insert(self::TABLE_NAME);
|
||||
foreach ($values as $column => $value) {
|
||||
if ($column === 'metadata') {
|
||||
$value = $this->trimMetaData($value);
|
||||
}
|
||||
$qb->setValue($column, $qb->createNamedParameter($value));
|
||||
}
|
||||
$qb->executeStatement();
|
||||
}
|
||||
|
||||
protected function trimMetaData(array $metadata): string {
|
||||
try {
|
||||
$data = json_encode($metadata, JSON_THROW_ON_ERROR);
|
||||
} catch (\JsonException) {
|
||||
$data = 'INVALID';
|
||||
}
|
||||
|
||||
$trimmed = substr($data, 0, 254);
|
||||
if ($trimmed !== $data) {
|
||||
$trimmed .= '…';
|
||||
}
|
||||
return $trimmed;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue