summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/l10n/mk.js4
-rw-r--r--lib/l10n/mk.json4
-rw-r--r--lib/l10n/ru.js4
-rw-r--r--lib/l10n/ru.json4
-rw-r--r--lib/l10n/uk.js4
-rw-r--r--lib/l10n/uk.json4
-rw-r--r--lib/private/Files/Config/UserMountCache.php31
-rw-r--r--lib/private/Files/Node/LazyUserFolder.php18
-rw-r--r--lib/private/Files/Node/Root.php2
-rw-r--r--lib/private/Share/Constants.php2
-rw-r--r--lib/private/Share20/Manager.php1
-rw-r--r--lib/private/Share20/ProviderFactory.php2
-rw-r--r--lib/public/Share/IShare.php5
13 files changed, 66 insertions, 19 deletions
diff --git a/lib/l10n/mk.js b/lib/l10n/mk.js
index 8bef570df57..2cfc60cada1 100644
--- a/lib/l10n/mk.js
+++ b/lib/l10n/mk.js
@@ -58,6 +58,7 @@ OC.L10N.register(
"Avatar image is not square" : "Сликата за Аватар не е квадратна",
"Files" : "Датотеки",
"View profile" : "Прегледај профил",
+ "Local time: %s" : "Локално време: %s",
"today" : "денес",
"tomorrow" : "утре",
"yesterday" : "вчера",
@@ -102,6 +103,8 @@ OC.L10N.register(
"Users" : "Корисници",
"Email" : "Е-пошта",
"Mail %s" : "Пошта %s",
+ "Fediverse" : "Федиверс",
+ "View %s on the fediverse" : "Погледни %s на федиверс",
"Phone" : "Телефон",
"Call %s" : "Повикај %s",
"Twitter" : "Twitter",
@@ -203,6 +206,7 @@ OC.L10N.register(
"A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
"The username is already being used" : "Корисничкото име е веќе во употреба",
"Could not create user" : "Неможе да се креира корисник",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "Само следниве карактери се дозволени во корисничкото име: \"a-z\", \"A-Z\", \"0-9\", празно место и \"_.@-'\"",
"A valid username must be provided" : "Мора да се внесе валидно корисничко име ",
"Username contains whitespace at the beginning or at the end" : "Корисничкото име содржи празно место на почетокот или на крајот",
"Username must not consist of dots only" : "Корисничкото име не смее да се состои само од точки",
diff --git a/lib/l10n/mk.json b/lib/l10n/mk.json
index 030bb97d3e0..8b679c7bdd5 100644
--- a/lib/l10n/mk.json
+++ b/lib/l10n/mk.json
@@ -56,6 +56,7 @@
"Avatar image is not square" : "Сликата за Аватар не е квадратна",
"Files" : "Датотеки",
"View profile" : "Прегледај профил",
+ "Local time: %s" : "Локално време: %s",
"today" : "денес",
"tomorrow" : "утре",
"yesterday" : "вчера",
@@ -100,6 +101,8 @@
"Users" : "Корисници",
"Email" : "Е-пошта",
"Mail %s" : "Пошта %s",
+ "Fediverse" : "Федиверс",
+ "View %s on the fediverse" : "Погледни %s на федиверс",
"Phone" : "Телефон",
"Call %s" : "Повикај %s",
"Twitter" : "Twitter",
@@ -201,6 +204,7 @@
"A valid password must be provided" : "Мора да се обезбеди валидна лозинка",
"The username is already being used" : "Корисничкото име е веќе во употреба",
"Could not create user" : "Неможе да се креира корисник",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "Само следниве карактери се дозволени во корисничкото име: \"a-z\", \"A-Z\", \"0-9\", празно место и \"_.@-'\"",
"A valid username must be provided" : "Мора да се внесе валидно корисничко име ",
"Username contains whitespace at the beginning or at the end" : "Корисничкото име содржи празно место на почетокот или на крајот",
"Username must not consist of dots only" : "Корисничкото име не смее да се состои само од точки",
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 1f1d60f29f4..819a83f2e40 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -58,6 +58,7 @@ OC.L10N.register(
"Avatar image is not square" : "Изображение аватара не квадратное",
"Files" : "Файлы",
"View profile" : "Открыть профиль",
+ "Local time: %s" : "Местное время: %s",
"today" : "сегодня",
"tomorrow" : "завтра",
"yesterday" : "вчера",
@@ -102,6 +103,8 @@ OC.L10N.register(
"Users" : "Пользователи",
"Email" : "Адрес эл. почты",
"Mail %s" : "Написать %s",
+ "Fediverse" : "Федиверс",
+ "View %s on the fediverse" : "Открыть %s в Федиверс",
"Phone" : "Телефон",
"Call %s" : "Позвонить %s",
"Twitter" : "Твиттер",
@@ -203,6 +206,7 @@ OC.L10N.register(
"A valid password must be provided" : "Укажите допустимый пароль",
"The username is already being used" : "Имя пользователя уже используется",
"Could not create user" : "Не удалось создать пользователя",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "В имени пользователя допускаются следующие символы: «a–z», «A–Z», «0–9» и «_.@-'»",
"A valid username must be provided" : "Укажите допустимое имя пользователя",
"Username contains whitespace at the beginning or at the end" : "Имя пользователя содержит пробел в начале или в конце",
"Username must not consist of dots only" : "Имя пользователя должно состоять не только из точек",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index f3a5a476dcb..a0d8e3b647a 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -56,6 +56,7 @@
"Avatar image is not square" : "Изображение аватара не квадратное",
"Files" : "Файлы",
"View profile" : "Открыть профиль",
+ "Local time: %s" : "Местное время: %s",
"today" : "сегодня",
"tomorrow" : "завтра",
"yesterday" : "вчера",
@@ -100,6 +101,8 @@
"Users" : "Пользователи",
"Email" : "Адрес эл. почты",
"Mail %s" : "Написать %s",
+ "Fediverse" : "Федиверс",
+ "View %s on the fediverse" : "Открыть %s в Федиверс",
"Phone" : "Телефон",
"Call %s" : "Позвонить %s",
"Twitter" : "Твиттер",
@@ -201,6 +204,7 @@
"A valid password must be provided" : "Укажите допустимый пароль",
"The username is already being used" : "Имя пользователя уже используется",
"Could not create user" : "Не удалось создать пользователя",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", spaces and \"_.@-'\"" : "В имени пользователя допускаются следующие символы: «a–z», «A–Z», «0–9» и «_.@-'»",
"A valid username must be provided" : "Укажите допустимое имя пользователя",
"Username contains whitespace at the beginning or at the end" : "Имя пользователя содержит пробел в начале или в конце",
"Username must not consist of dots only" : "Имя пользователя должно состоять не только из точек",
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index e5786d61ba3..d5572c40f87 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -93,9 +93,9 @@ OC.L10N.register(
"__language_name__" : "Українська",
"This is an automatically sent email, please do not reply." : "Це автоматично надісланий електронний лист, будь ласка, не відповідайте.",
"Help" : "Допомога",
- "Appearance and accessibility" : "Вигляд та доступність",
+ "Appearance and accessibility" : "Тема та вигляд",
"Apps" : "Застосунки",
- "Personal settings" : "Особисте",
+ "Personal settings" : "Мої налаштування",
"Administration settings" : "Адміністрування",
"Settings" : "Налаштування",
"Log out" : "Вихід",
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index 8f810d5923b..f832eae7404 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -91,9 +91,9 @@
"__language_name__" : "Українська",
"This is an automatically sent email, please do not reply." : "Це автоматично надісланий електронний лист, будь ласка, не відповідайте.",
"Help" : "Допомога",
- "Appearance and accessibility" : "Вигляд та доступність",
+ "Appearance and accessibility" : "Тема та вигляд",
"Apps" : "Застосунки",
- "Personal settings" : "Особисте",
+ "Personal settings" : "Мої налаштування",
"Administration settings" : "Адміністрування",
"Settings" : "Налаштування",
"Log out" : "Вихід",
diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php
index fe677c5ea52..a60b39823c5 100644
--- a/lib/private/Files/Config/UserMountCache.php
+++ b/lib/private/Files/Config/UserMountCache.php
@@ -130,18 +130,25 @@ class UserMountCache implements IUserMountCache {
$changedMounts = $this->findChangedMounts($newMounts, $cachedMounts);
- foreach ($addedMounts as $mount) {
- $this->addToCache($mount);
- /** @psalm-suppress InvalidArgument */
- $this->mountsForUsers[$user->getUID()][] = $mount;
- }
- foreach ($removedMounts as $mount) {
- $this->removeFromCache($mount);
- $index = array_search($mount, $this->mountsForUsers[$user->getUID()]);
- unset($this->mountsForUsers[$user->getUID()][$index]);
- }
- foreach ($changedMounts as $mount) {
- $this->updateCachedMount($mount);
+ $this->connection->beginTransaction();
+ try {
+ foreach ($addedMounts as $mount) {
+ $this->addToCache($mount);
+ /** @psalm-suppress InvalidArgument */
+ $this->mountsForUsers[$user->getUID()][] = $mount;
+ }
+ foreach ($removedMounts as $mount) {
+ $this->removeFromCache($mount);
+ $index = array_search($mount, $this->mountsForUsers[$user->getUID()]);
+ unset($this->mountsForUsers[$user->getUID()][$index]);
+ }
+ foreach ($changedMounts as $mount) {
+ $this->updateCachedMount($mount);
+ }
+ $this->connection->commit();
+ } catch (\Throwable $e) {
+ $this->connection->rollBack();
+ throw $e;
}
$this->eventLogger->end('fs:setup:user:register');
}
diff --git a/lib/private/Files/Node/LazyUserFolder.php b/lib/private/Files/Node/LazyUserFolder.php
index c85a356ddd3..81009532dbf 100644
--- a/lib/private/Files/Node/LazyUserFolder.php
+++ b/lib/private/Files/Node/LazyUserFolder.php
@@ -26,6 +26,7 @@ namespace OC\Files\Node;
use OCP\Files\FileInfo;
use OCP\Constants;
use OCP\Files\IRootFolder;
+use OCP\Files\Mount\IMountManager;
use OCP\Files\NotFoundException;
use OCP\IUser;
@@ -33,10 +34,12 @@ class LazyUserFolder extends LazyFolder {
private IRootFolder $root;
private IUser $user;
private string $path;
+ private IMountManager $mountManager;
- public function __construct(IRootFolder $rootFolder, IUser $user) {
+ public function __construct(IRootFolder $rootFolder, IUser $user, IMountManager $mountManager) {
$this->root = $rootFolder;
$this->user = $user;
+ $this->mountManager = $mountManager;
$this->path = '/' . $user->getUID() . '/files';
parent::__construct(function () use ($user) {
try {
@@ -61,9 +64,20 @@ class LazyUserFolder extends LazyFolder {
/**
* @param int $id
- * @return \OC\Files\Node\Node[]
+ * @return \OCP\Files\Node[]
*/
public function getById($id) {
return $this->root->getByIdInPath((int)$id, $this->getPath());
}
+
+ public function getMountPoint() {
+ if ($this->folder !== null) {
+ return $this->folder->getMountPoint();
+ }
+ $mountPoint = $this->mountManager->find('/' . $this->user->getUID());
+ if (is_null($mountPoint)) {
+ throw new \Exception("No mountpoint for user folder");
+ }
+ return $mountPoint;
+ }
}
diff --git a/lib/private/Files/Node/Root.php b/lib/private/Files/Node/Root.php
index 29cdbb987c3..e9fb14e5364 100644
--- a/lib/private/Files/Node/Root.php
+++ b/lib/private/Files/Node/Root.php
@@ -395,7 +395,7 @@ class Root extends Folder implements IRootFolder {
$folder = $this->newFolder('/' . $userId . '/files');
}
} else {
- $folder = new LazyUserFolder($this, $userObject);
+ $folder = new LazyUserFolder($this, $userObject, $this->mountManager);
}
$this->userFolderCache->set($userId, $folder);
diff --git a/lib/private/Share/Constants.php b/lib/private/Share/Constants.php
index 03c4c2ba828..0c8fad17e07 100644
--- a/lib/private/Share/Constants.php
+++ b/lib/private/Share/Constants.php
@@ -74,6 +74,8 @@ class Constants {
public const SHARE_TYPE_DECK = 12;
// const SHARE_TYPE_DECK_USER = 13; // Internal type used by DeckShareProvider
+ // Note to developers: Do not add new share types here
+
public const FORMAT_NONE = -1;
public const FORMAT_STATUSES = -2;
public const FORMAT_SOURCES = -3; // ToDo Check if it is still in use otherwise remove it
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 7fd99545668..f84ed1671ba 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -244,6 +244,7 @@ class Manager implements IManager {
}
} elseif ($share->getShareType() === IShare::TYPE_ROOM) {
} elseif ($share->getShareType() === IShare::TYPE_DECK) {
+ } elseif ($share->getShareType() === IShare::TYPE_SCIENCEMESH) {
} else {
// We cannot handle other types yet
throw new \InvalidArgumentException('unknown share type');
diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php
index 16f9a17ee42..6abfb372a4d 100644
--- a/lib/private/Share20/ProviderFactory.php
+++ b/lib/private/Share20/ProviderFactory.php
@@ -340,6 +340,8 @@ class ProviderFactory implements IProviderFactory {
$provider = $this->getRoomShareProvider();
} elseif ($shareType === IShare::TYPE_DECK) {
$provider = $this->getProvider('deck');
+ } elseif ($shareType === IShare::TYPE_SCIENCEMESH) {
+ $provider = $this->getProvider('sciencemesh');
}
diff --git a/lib/public/Share/IShare.php b/lib/public/Share/IShare.php
index f8f75be4c41..40548c6c73d 100644
--- a/lib/public/Share/IShare.php
+++ b/lib/public/Share/IShare.php
@@ -118,6 +118,11 @@ interface IShare {
public const TYPE_DECK_USER = 13;
/**
+ * @since 26.0.0
+ */
+ public const TYPE_SCIENCEMESH = 15;
+
+ /**
* @since 18.0.0
*/
public const STATUS_PENDING = 0;