summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2023-02-27 11:49:50 +0100
committerGitHub <noreply@github.com>2023-02-27 11:49:50 +0100
commit70a68e88f56c67c39f5b06d7532704bd5fe7acf3 (patch)
treeb4babc93f706eb37860c4ef6e03d10e1ee0a590e /lib
parent15f660fa5f1b9cf52c29a66c1693462ca79459d0 (diff)
parent4f7d77406d71bc7af919adb20bc42ea7e861e3c9 (diff)
downloadnextcloud-server-70a68e88f56c67c39f5b06d7532704bd5fe7acf3.tar.gz
nextcloud-server-70a68e88f56c67c39f5b06d7532704bd5fe7acf3.zip
Merge pull request #36837 from nextcloud/fix/truncate-overlong-tagnames
fix(SystemTagManager): Truncate overlong tag names
Diffstat (limited to 'lib')
-rw-r--r--lib/private/SystemTag/SystemTagManager.php8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/private/SystemTag/SystemTagManager.php b/lib/private/SystemTag/SystemTagManager.php
index 4524aeaf7bc..79c5adcf450 100644
--- a/lib/private/SystemTag/SystemTagManager.php
+++ b/lib/private/SystemTag/SystemTagManager.php
@@ -193,10 +193,12 @@ class SystemTagManager implements ISystemTagManager {
* {@inheritdoc}
*/
public function createTag(string $tagName, bool $userVisible, bool $userAssignable): ISystemTag {
+ // Length of name column is 64
+ $truncatedTagName = substr($tagName, 0, 64);
$query = $this->connection->getQueryBuilder();
$query->insert(self::TAG_TABLE)
->values([
- 'name' => $query->createNamedParameter($tagName),
+ 'name' => $query->createNamedParameter($truncatedTagName),
'visibility' => $query->createNamedParameter($userVisible ? 1 : 0),
'editable' => $query->createNamedParameter($userAssignable ? 1 : 0),
]);
@@ -205,7 +207,7 @@ class SystemTagManager implements ISystemTagManager {
$query->execute();
} catch (UniqueConstraintViolationException $e) {
throw new TagAlreadyExistsException(
- 'Tag ("' . $tagName . '", '. $userVisible . ', ' . $userAssignable . ') already exists',
+ 'Tag ("' . $truncatedTagName . '", '. $userVisible . ', ' . $userAssignable . ') already exists',
0,
$e
);
@@ -215,7 +217,7 @@ class SystemTagManager implements ISystemTagManager {
$tag = new SystemTag(
(string)$tagId,
- $tagName,
+ $truncatedTagName,
$userVisible,
$userAssignable
);