aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/l10n/br.js1
-rw-r--r--lib/l10n/br.json1
-rw-r--r--lib/l10n/de_DE.js2
-rw-r--r--lib/l10n/de_DE.json2
-rw-r--r--lib/l10n/en_GB.js2
-rw-r--r--lib/l10n/en_GB.json2
-rw-r--r--lib/l10n/ga.js2
-rw-r--r--lib/l10n/ga.json2
-rw-r--r--lib/l10n/gl.js2
-rw-r--r--lib/l10n/gl.json2
-rw-r--r--lib/l10n/hu.js1
-rw-r--r--lib/l10n/hu.json1
-rw-r--r--lib/l10n/nb.js2
-rw-r--r--lib/l10n/nb.json2
-rw-r--r--lib/l10n/pt_BR.js2
-rw-r--r--lib/l10n/pt_BR.json2
-rw-r--r--lib/l10n/sr@latin.js2
-rw-r--r--lib/l10n/sr@latin.json2
-rw-r--r--lib/l10n/sv.js2
-rw-r--r--lib/l10n/sv.json2
-rw-r--r--lib/l10n/zh_TW.js2
-rw-r--r--lib/l10n/zh_TW.json2
-rw-r--r--lib/private/DB/Connection.php71
-rw-r--r--lib/private/DB/ConnectionAdapter.php4
-rw-r--r--lib/private/Files/View.php4
-rw-r--r--lib/private/RedisFactory.php33
26 files changed, 136 insertions, 16 deletions
diff --git a/lib/l10n/br.js b/lib/l10n/br.js
index 74b65c80083..9acd6e9a38d 100644
--- a/lib/l10n/br.js
+++ b/lib/l10n/br.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Apps" : "Meziant",
"Settings" : "Arventennoù",
"Log out" : "Kuitat",
+ "Accounts" : "Kontoù",
"Email" : "Postel",
"Twitter" : "Twitter",
"Website" : "Lec'hien web",
diff --git a/lib/l10n/br.json b/lib/l10n/br.json
index 4c7e7c89929..c7844acba80 100644
--- a/lib/l10n/br.json
+++ b/lib/l10n/br.json
@@ -26,6 +26,7 @@
"Apps" : "Meziant",
"Settings" : "Arventennoù",
"Log out" : "Kuitat",
+ "Accounts" : "Kontoù",
"Email" : "Postel",
"Twitter" : "Twitter",
"Website" : "Lec'hien web",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index cc15b32c111..2ab7e76a79e 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Das angemeldete Konto muss ein Administrator, ein Teil-Administrator sein oder ein Sonderrecht haben, um auf diese Einstellung zuzugreifen",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Unter Ihrer aktuellen IP-Adresse sind keine Administrationsaktionen erlaubt",
"Logged in account must be an admin or sub admin" : "Das angemeldete Konto muss ein (Sub-)Administrator sein",
"Logged in account must be an admin" : "Das angemeldete Konto muss ein Administrator sein",
"Wiping of device %s has started" : "Löschen von Gerät %s wurde gestartet",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Ungültiger Pfad",
"Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
"Templates" : "Vorlagen",
+ "Path contains invalid segments" : "Pfad enthält ungültige Segmente",
"File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort",
"File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen",
"File name is too long" : "Dateiname ist zu lang",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index 33413652199..5d231b0ab0f 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Das angemeldete Konto muss ein Administrator, ein Teil-Administrator sein oder ein Sonderrecht haben, um auf diese Einstellung zuzugreifen",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Unter Ihrer aktuellen IP-Adresse sind keine Administrationsaktionen erlaubt",
"Logged in account must be an admin or sub admin" : "Das angemeldete Konto muss ein (Sub-)Administrator sein",
"Logged in account must be an admin" : "Das angemeldete Konto muss ein Administrator sein",
"Wiping of device %s has started" : "Löschen von Gerät %s wurde gestartet",
@@ -85,6 +86,7 @@
"Invalid path" : "Ungültiger Pfad",
"Failed to create file from template" : "Fehler beim Erstellen der Datei aus Vorlage",
"Templates" : "Vorlagen",
+ "Path contains invalid segments" : "Pfad enthält ungültige Segmente",
"File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort",
"File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen",
"File name is too long" : "Dateiname ist zu lang",
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index 839d46e241d..fe293098c00 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Server version %s or higher is required.",
"Server version %s or lower is required." : "Server version %s or lower is required.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Logged in account must be an admin, a sub admin or gotten special right to access this setting",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Your current IP address doesn’t allow you to perform admin actions",
"Logged in account must be an admin or sub admin" : "Logged in account must be an admin or sub admin",
"Logged in account must be an admin" : "Logged in account must be an admin",
"Wiping of device %s has started" : "Wiping of device %s has started",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Invalid path",
"Failed to create file from template" : "Failed to create file from template",
"Templates" : "Templates",
+ "Path contains invalid segments" : "Path contains invalid segments",
"File name is a reserved word" : "File name is a reserved word",
"File name contains at least one invalid character" : "File name contains at least one invalid character",
"File name is too long" : "File name is too long",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index 90d48cec7e7..331038ba6db 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Server version %s or higher is required.",
"Server version %s or lower is required." : "Server version %s or lower is required.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Logged in account must be an admin, a sub admin or gotten special right to access this setting",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Your current IP address doesn’t allow you to perform admin actions",
"Logged in account must be an admin or sub admin" : "Logged in account must be an admin or sub admin",
"Logged in account must be an admin" : "Logged in account must be an admin",
"Wiping of device %s has started" : "Wiping of device %s has started",
@@ -85,6 +86,7 @@
"Invalid path" : "Invalid path",
"Failed to create file from template" : "Failed to create file from template",
"Templates" : "Templates",
+ "Path contains invalid segments" : "Path contains invalid segments",
"File name is a reserved word" : "File name is a reserved word",
"File name contains at least one invalid character" : "File name contains at least one invalid character",
"File name is too long" : "File name is too long",
diff --git a/lib/l10n/ga.js b/lib/l10n/ga.js
index fdc5016267b..eb6ba637453 100644
--- a/lib/l10n/ga.js
+++ b/lib/l10n/ga.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Tá leagan freastalaí %s nó níos airde ag teastáil.",
"Server version %s or lower is required." : "Tá leagan freastalaí %s nó níos ísle ag teastáil.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Ní mór gur riarthóir, fo-riarthóir é cuntas logáilte isteach nó go bhfuil ceart speisialta faighte aige chun an socrú seo a rochtain",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Ní cheadaíonn do sheoladh IP reatha duit gníomhartha riaracháin a dhéanamh",
"Logged in account must be an admin or sub admin" : "Ní mór gur riarthóir nó fo-riarthóir é cuntas logáilte isteach",
"Logged in account must be an admin" : "Ní mór gur riarthóir é cuntas logáilte isteach",
"Wiping of device %s has started" : "Tá tús curtha le glanadh an ghléis %s",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Conair neamhbhailí",
"Failed to create file from template" : "Theip ar chruthú comhad ón teimpléad",
"Templates" : "Teimpléid",
+ "Path contains invalid segments" : "Tá míreanna neamhbhailí sa chonair",
"File name is a reserved word" : "Focal in áirithe is ea ainm comhaid",
"File name contains at least one invalid character" : "Tá carachtar neamhbhailí amháin ar a laghad san ainm comhaid",
"File name is too long" : "Tá ainm an chomhaid rófhada",
diff --git a/lib/l10n/ga.json b/lib/l10n/ga.json
index 31a35e2c55c..ee5f47e7aec 100644
--- a/lib/l10n/ga.json
+++ b/lib/l10n/ga.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Tá leagan freastalaí %s nó níos airde ag teastáil.",
"Server version %s or lower is required." : "Tá leagan freastalaí %s nó níos ísle ag teastáil.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Ní mór gur riarthóir, fo-riarthóir é cuntas logáilte isteach nó go bhfuil ceart speisialta faighte aige chun an socrú seo a rochtain",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Ní cheadaíonn do sheoladh IP reatha duit gníomhartha riaracháin a dhéanamh",
"Logged in account must be an admin or sub admin" : "Ní mór gur riarthóir nó fo-riarthóir é cuntas logáilte isteach",
"Logged in account must be an admin" : "Ní mór gur riarthóir é cuntas logáilte isteach",
"Wiping of device %s has started" : "Tá tús curtha le glanadh an ghléis %s",
@@ -85,6 +86,7 @@
"Invalid path" : "Conair neamhbhailí",
"Failed to create file from template" : "Theip ar chruthú comhad ón teimpléad",
"Templates" : "Teimpléid",
+ "Path contains invalid segments" : "Tá míreanna neamhbhailí sa chonair",
"File name is a reserved word" : "Focal in áirithe is ea ainm comhaid",
"File name contains at least one invalid character" : "Tá carachtar neamhbhailí amháin ar a laghad san ainm comhaid",
"File name is too long" : "Tá ainm an chomhaid rófhada",
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 3f981a253d5..9ee4a4e50d4 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Precísase da versión %s ou superior do servidor.",
"Server version %s or lower is required." : "Precísase da versión %s ou inferior do servidor.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "A conta que accede debe ser de administración, de subadministración ou ter dereitos especiais para acceder a este axuste",
+ "Your current IP address doesn’t allow you to perform admin actions" : "O seu enderezo IP actual non lle permite realizar accións de administración",
"Logged in account must be an admin or sub admin" : "A conta que accede debe ser de administración ou de subadministración",
"Logged in account must be an admin" : "A conta que accede debe ser de administración",
"Wiping of device %s has started" : "Iniciouse a limpeza do dispositivo %s",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Ruta incorrecta.",
"Failed to create file from template" : "Produciuse un fallo ao crear un ficheiro a partir do modelo",
"Templates" : "Modelos",
+ "Path contains invalid segments" : "A ruta contén segmentos non válidos",
"File name is a reserved word" : "O nome de ficheiro é unha palabra reservada",
"File name contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto",
"File name is too long" : "O nome de ficheiro é longo de máis",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index 120cb46fad5..01577f16265 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Precísase da versión %s ou superior do servidor.",
"Server version %s or lower is required." : "Precísase da versión %s ou inferior do servidor.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "A conta que accede debe ser de administración, de subadministración ou ter dereitos especiais para acceder a este axuste",
+ "Your current IP address doesn’t allow you to perform admin actions" : "O seu enderezo IP actual non lle permite realizar accións de administración",
"Logged in account must be an admin or sub admin" : "A conta que accede debe ser de administración ou de subadministración",
"Logged in account must be an admin" : "A conta que accede debe ser de administración",
"Wiping of device %s has started" : "Iniciouse a limpeza do dispositivo %s",
@@ -85,6 +86,7 @@
"Invalid path" : "Ruta incorrecta.",
"Failed to create file from template" : "Produciuse un fallo ao crear un ficheiro a partir do modelo",
"Templates" : "Modelos",
+ "Path contains invalid segments" : "A ruta contén segmentos non válidos",
"File name is a reserved word" : "O nome de ficheiro é unha palabra reservada",
"File name contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto",
"File name is too long" : "O nome de ficheiro é longo de máis",
diff --git a/lib/l10n/hu.js b/lib/l10n/hu.js
index 6f5b7aaa15f..174501303fd 100644
--- a/lib/l10n/hu.js
+++ b/lib/l10n/hu.js
@@ -89,6 +89,7 @@ OC.L10N.register(
"App \"%s\" cannot be installed because it is not compatible with this version of the server." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert nem kompatibilis ezzel a kiszolgálóverzióval.",
"__language_name__" : "Magyar",
"This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, ne válaszoljon rá.",
+ "Help & privacy" : "Súgó és adatvédelem",
"Appearance and accessibility" : "Megjelenés és akadálymentesítés",
"Apps" : "Alkalmazások",
"Personal settings" : "Személyes beállítások",
diff --git a/lib/l10n/hu.json b/lib/l10n/hu.json
index d1cd54bac41..45e3ebfccb2 100644
--- a/lib/l10n/hu.json
+++ b/lib/l10n/hu.json
@@ -87,6 +87,7 @@
"App \"%s\" cannot be installed because it is not compatible with this version of the server." : "A(z) „%s” alkalmazást nem lehet telepíteni, mert nem kompatibilis ezzel a kiszolgálóverzióval.",
"__language_name__" : "Magyar",
"This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, ne válaszoljon rá.",
+ "Help & privacy" : "Súgó és adatvédelem",
"Appearance and accessibility" : "Megjelenés és akadálymentesítés",
"Apps" : "Alkalmazások",
"Personal settings" : "Személyes beállítások",
diff --git a/lib/l10n/nb.js b/lib/l10n/nb.js
index f62bcfd18fa..0c465bcd81b 100644
--- a/lib/l10n/nb.js
+++ b/lib/l10n/nb.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Serverversjon %s eller høyere kreves.",
"Server version %s or lower is required." : "Serverversjon %s eller lavere kreves.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Innlogget konto må være administrator, underadministrator eller ha fått spesiell rett til å få tilgang til denne innstillingen.",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Den nåværende IP-adressen din lar deg ikke utføre administratorhandlinger",
"Logged in account must be an admin or sub admin" : "Innlogget konto må være administrator eller en underadministrator.",
"Logged in account must be an admin" : "Innlogget konto må være administrator",
"Wiping of device %s has started" : "Sikker sletting av enhet %s er startet",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Ugyldig filbane",
"Failed to create file from template" : "Oppretting av fil fra mal feilet",
"Templates" : "Maler",
+ "Path contains invalid segments" : "Banen inneholder ugyldige segmenter",
"File name is a reserved word" : "Filnavnet er et reservert ord",
"File name contains at least one invalid character" : "Filnavnet inneholder minst ett ulovlig tegn",
"File name is too long" : "Filnavnet er for langt",
diff --git a/lib/l10n/nb.json b/lib/l10n/nb.json
index bb6c97d6006..c3e66f6fa7d 100644
--- a/lib/l10n/nb.json
+++ b/lib/l10n/nb.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Serverversjon %s eller høyere kreves.",
"Server version %s or lower is required." : "Serverversjon %s eller lavere kreves.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Innlogget konto må være administrator, underadministrator eller ha fått spesiell rett til å få tilgang til denne innstillingen.",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Den nåværende IP-adressen din lar deg ikke utføre administratorhandlinger",
"Logged in account must be an admin or sub admin" : "Innlogget konto må være administrator eller en underadministrator.",
"Logged in account must be an admin" : "Innlogget konto må være administrator",
"Wiping of device %s has started" : "Sikker sletting av enhet %s er startet",
@@ -85,6 +86,7 @@
"Invalid path" : "Ugyldig filbane",
"Failed to create file from template" : "Oppretting av fil fra mal feilet",
"Templates" : "Maler",
+ "Path contains invalid segments" : "Banen inneholder ugyldige segmenter",
"File name is a reserved word" : "Filnavnet er et reservert ord",
"File name contains at least one invalid character" : "Filnavnet inneholder minst ett ulovlig tegn",
"File name is too long" : "Filnavnet er for langt",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 07572e10cb5..5edc4c57c84 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.",
"Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "A conta conectada deve ser um administrador, um subadministrador ou ter direito especial para acessar esta configuração",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Seu endereço IP atual não permite que você execute ações administrativas",
"Logged in account must be an admin or sub admin" : "A conta conectada deve ser de um administrador ou subadministrador",
"Logged in account must be an admin" : "A conta logada deve ser de um administrador",
"Wiping of device %s has started" : "Limpeza do dispositivo %s iniciou",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Diretório inválido",
"Failed to create file from template" : "Falha ao criar arquivo do modelo ",
"Templates" : "Modelos ",
+ "Path contains invalid segments" : "O caminho contém segmentos inválidos",
"File name is a reserved word" : "O nome do arquivo é uma palavra reservada",
"File name contains at least one invalid character" : "O nome do arquivo contém pelo menos um caracter inválido",
"File name is too long" : "O nome do arquivo é muito longo",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index cd3f55ce20d..1305041a586 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.",
"Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "A conta conectada deve ser um administrador, um subadministrador ou ter direito especial para acessar esta configuração",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Seu endereço IP atual não permite que você execute ações administrativas",
"Logged in account must be an admin or sub admin" : "A conta conectada deve ser de um administrador ou subadministrador",
"Logged in account must be an admin" : "A conta logada deve ser de um administrador",
"Wiping of device %s has started" : "Limpeza do dispositivo %s iniciou",
@@ -85,6 +86,7 @@
"Invalid path" : "Diretório inválido",
"Failed to create file from template" : "Falha ao criar arquivo do modelo ",
"Templates" : "Modelos ",
+ "Path contains invalid segments" : "O caminho contém segmentos inválidos",
"File name is a reserved word" : "O nome do arquivo é uma palavra reservada",
"File name contains at least one invalid character" : "O nome do arquivo contém pelo menos um caracter inválido",
"File name is too long" : "O nome do arquivo é muito longo",
diff --git a/lib/l10n/sr@latin.js b/lib/l10n/sr@latin.js
index 3487200ee85..2d322157d37 100644
--- a/lib/l10n/sr@latin.js
+++ b/lib/l10n/sr@latin.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"lib",
{
+ "Unknown filetype" : "Nepoznati tip fajla",
+ "Invalid image" : "Neispravna slika",
"Files" : "Фајлови",
"View profile" : "Vidi profil",
"seconds ago" : "pre par sekundi",
diff --git a/lib/l10n/sr@latin.json b/lib/l10n/sr@latin.json
index 84ad4559b0a..0300634c077 100644
--- a/lib/l10n/sr@latin.json
+++ b/lib/l10n/sr@latin.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Unknown filetype" : "Nepoznati tip fajla",
+ "Invalid image" : "Neispravna slika",
"Files" : "Фајлови",
"View profile" : "Vidi profil",
"seconds ago" : "pre par sekundi",
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index 1bc47ffa0ba..d210f36901c 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "Serverversion %s eller nyare krävs.",
"Server version %s or lower is required." : "Serverversion %s eller äldre krävs.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Inloggat konto måste vara en admin, underadministratör eller ha tilldelats speciella rättigheter för att komma åt denna inställning",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Din nuvarande IP-adress tillåter dig inte att utföra administratörsåtgärder",
"Logged in account must be an admin or sub admin" : "Inloggat konto måste vara en admin eller underadministratör",
"Logged in account must be an admin" : "Inloggat konto måste vara admin",
"Wiping of device %s has started" : "Rensning av enhet %s har startat",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "Ogiltig sökväg",
"Failed to create file from template" : "Kunde skapa fil från mall",
"Templates" : "Mallar",
+ "Path contains invalid segments" : "Sökvägen innehåller ogiltiga segment",
"File name is a reserved word" : "Filnamnet är ett reserverat ord",
"File name contains at least one invalid character" : "Filnamnet innehåller minst ett ogiltigt tecken",
"File name is too long" : "Filnamnet är för långt",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 2b918b35dc4..3882f550ccb 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "Serverversion %s eller nyare krävs.",
"Server version %s or lower is required." : "Serverversion %s eller äldre krävs.",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "Inloggat konto måste vara en admin, underadministratör eller ha tilldelats speciella rättigheter för att komma åt denna inställning",
+ "Your current IP address doesn’t allow you to perform admin actions" : "Din nuvarande IP-adress tillåter dig inte att utföra administratörsåtgärder",
"Logged in account must be an admin or sub admin" : "Inloggat konto måste vara en admin eller underadministratör",
"Logged in account must be an admin" : "Inloggat konto måste vara admin",
"Wiping of device %s has started" : "Rensning av enhet %s har startat",
@@ -85,6 +86,7 @@
"Invalid path" : "Ogiltig sökväg",
"Failed to create file from template" : "Kunde skapa fil från mall",
"Templates" : "Mallar",
+ "Path contains invalid segments" : "Sökvägen innehåller ogiltiga segment",
"File name is a reserved word" : "Filnamnet är ett reserverat ord",
"File name contains at least one invalid character" : "Filnamnet innehåller minst ett ogiltigt tecken",
"File name is too long" : "Filnamnet är för långt",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index cb5bf6eddc3..4fac3736cac 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -38,6 +38,7 @@ OC.L10N.register(
"Server version %s or higher is required." : "需要伺服器版本 %s 或更高",
"Server version %s or lower is required." : "需要伺服器版本 %s 或更低",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "登入帳號必須為管理員、子管理員或有可存取此設定的特殊權限的使用者",
+ "Your current IP address doesn’t allow you to perform admin actions" : "您目前的 IP 位置不允許您執行管理動作",
"Logged in account must be an admin or sub admin" : "登入的帳號必須要是管理員或是子管理員",
"Logged in account must be an admin" : "登入的帳號必須有管理員權限",
"Wiping of device %s has started" : "已開始抹除裝置 %s ",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Invalid path" : "無效的路徑",
"Failed to create file from template" : "無法從範本建立檔案",
"Templates" : "範本",
+ "Path contains invalid segments" : "路徑包含無效的部份",
"File name is a reserved word" : "檔案名稱是保留字",
"File name contains at least one invalid character" : "檔案名稱含有不允許的字元",
"File name is too long" : "檔案名稱太長",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index cd5c36d72b8..5fe0528c607 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -36,6 +36,7 @@
"Server version %s or higher is required." : "需要伺服器版本 %s 或更高",
"Server version %s or lower is required." : "需要伺服器版本 %s 或更低",
"Logged in account must be an admin, a sub admin or gotten special right to access this setting" : "登入帳號必須為管理員、子管理員或有可存取此設定的特殊權限的使用者",
+ "Your current IP address doesn’t allow you to perform admin actions" : "您目前的 IP 位置不允許您執行管理動作",
"Logged in account must be an admin or sub admin" : "登入的帳號必須要是管理員或是子管理員",
"Logged in account must be an admin" : "登入的帳號必須有管理員權限",
"Wiping of device %s has started" : "已開始抹除裝置 %s ",
@@ -85,6 +86,7 @@
"Invalid path" : "無效的路徑",
"Failed to create file from template" : "無法從範本建立檔案",
"Templates" : "範本",
+ "Path contains invalid segments" : "路徑包含無效的部份",
"File name is a reserved word" : "檔案名稱是保留字",
"File name contains at least one invalid character" : "檔案名稱含有不允許的字元",
"File name is too long" : "檔案名稱太長",
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index ab0b35c11b0..b4e447940ea 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -79,6 +79,9 @@ class Connection extends \Doctrine\DBAL\Connection {
/** @var DbDataCollector|null */
protected $dbDataCollector = null;
+ protected bool $logDbException = false;
+ private ?array $transactionBacktrace = null;
+
protected bool $logRequestId;
protected string $requestId;
@@ -110,6 +113,7 @@ class Connection extends \Doctrine\DBAL\Connection {
$this->logger = \OC::$server->get(LoggerInterface::class);
$this->logRequestId = $this->systemConfig->getValue('db.log_request_id', false);
+ $this->logDbException = $this->systemConfig->getValue('db.log_exceptions', false);
$this->requestId = Server::get(IRequestId::class)->getId();
/** @var \OCP\Profiler\IProfiler */
@@ -263,7 +267,12 @@ class Connection extends \Doctrine\DBAL\Connection {
$sql = $this->finishQuery($sql);
$this->queriesExecuted++;
$this->logQueryToFile($sql);
- return parent::executeQuery($sql, $params, $types, $qcp);
+ try {
+ return parent::executeQuery($sql, $params, $types, $qcp);
+ } catch (\Exception $e) {
+ $this->logDatabaseException($e);
+ throw $e;
+ }
}
/**
@@ -294,7 +303,12 @@ class Connection extends \Doctrine\DBAL\Connection {
$sql = $this->finishQuery($sql);
$this->queriesExecuted++;
$this->logQueryToFile($sql);
- return (int)parent::executeStatement($sql, $params, $types);
+ try {
+ return (int)parent::executeStatement($sql, $params, $types);
+ } catch (\Exception $e) {
+ $this->logDatabaseException($e);
+ throw $e;
+ }
}
protected function logQueryToFile(string $sql): void {
@@ -356,11 +370,21 @@ class Connection extends \Doctrine\DBAL\Connection {
* @deprecated 15.0.0 - use unique index and "try { $db->insert() } catch (UniqueConstraintViolationException $e) {}" instead, because it is more reliable and does not have the risk for deadlocks - see https://github.com/nextcloud/server/pull/12371
*/
public function insertIfNotExist($table, $input, array $compare = null) {
- return $this->adapter->insertIfNotExist($table, $input, $compare);
+ try {
+ return $this->adapter->insertIfNotExist($table, $input, $compare);
+ } catch (\Exception $e) {
+ $this->logDatabaseException($e);
+ throw $e;
+ }
}
public function insertIgnoreConflict(string $table, array $values) : int {
- return $this->adapter->insertIgnoreConflict($table, $values);
+ try {
+ return $this->adapter->insertIgnoreConflict($table, $values);
+ } catch (\Exception $e) {
+ $this->logDatabaseException($e);
+ throw $e;
+ }
}
private function getType($value) {
@@ -616,4 +640,43 @@ class Connection extends \Doctrine\DBAL\Connection {
return new Migrator($this, $config, $dispatcher);
}
}
+
+ public function beginTransaction() {
+ if (!$this->inTransaction()) {
+ $this->transactionBacktrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
+ }
+ return parent::beginTransaction();
+ }
+
+ public function commit() {
+ $result = parent::commit();
+ if ($this->getTransactionNestingLevel() === 0) {
+ $this->transactionBacktrace = null;
+ }
+ return $result;
+ }
+
+ public function rollBack() {
+ $result = parent::rollBack();
+ if ($this->getTransactionNestingLevel() === 0) {
+ $this->transactionBacktrace = null;
+ }
+ return $result;
+ }
+
+ /**
+ * Log a database exception if enabled
+ *
+ * @param \Exception $exception
+ * @return void
+ */
+ public function logDatabaseException(\Exception $exception): void {
+ if ($this->logDbException) {
+ if ($exception instanceof Exception\UniqueConstraintViolationException) {
+ $this->logger->info($exception->getMessage(), ['exception' => $exception, 'transaction' => $this->transactionBacktrace]);
+ } else {
+ $this->logger->error($exception->getMessage(), ['exception' => $exception, 'transaction' => $this->transactionBacktrace]);
+ }
+ }
+ }
}
diff --git a/lib/private/DB/ConnectionAdapter.php b/lib/private/DB/ConnectionAdapter.php
index e27c98194fb..71be59c4d35 100644
--- a/lib/private/DB/ConnectionAdapter.php
+++ b/lib/private/DB/ConnectionAdapter.php
@@ -261,4 +261,8 @@ class ConnectionAdapter implements IDBConnection {
throw new \Exception('Database ' . $platform::class . ' not supported');
}
}
+
+ public function logDatabaseException(\Exception $exception) {
+ $this->inner->logDatabaseException($exception);
+ }
}
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php
index 1fa14501047..890dcfe20e1 100644
--- a/lib/private/Files/View.php
+++ b/lib/private/Files/View.php
@@ -1388,6 +1388,10 @@ class View {
if ($mount instanceof MoveableMount && $internalPath === '') {
$data['permissions'] |= \OCP\Constants::PERMISSION_DELETE;
}
+ if ($internalPath === '' && $data['name']) {
+ $data['name'] = basename($path);
+ }
+
$ownerId = $storage->getOwner($internalPath);
$owner = null;
if ($ownerId !== null && $ownerId !== false) {
diff --git a/lib/private/RedisFactory.php b/lib/private/RedisFactory.php
index b657a0a83af..32be326d46f 100644
--- a/lib/private/RedisFactory.php
+++ b/lib/private/RedisFactory.php
@@ -74,6 +74,7 @@ class RedisFactory {
// # TLS support
// # https://github.com/phpredis/phpredis/issues/1600
$connectionParameters = $this->getSslContext($config);
+ $persistent = $this->config->getValue('redis.persistent', true);
// cluster config
if ($isCluster) {
@@ -83,9 +84,9 @@ class RedisFactory {
// Support for older phpredis versions not supporting connectionParameters
if ($connectionParameters !== null) {
- $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, true, $auth, $connectionParameters);
+ $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, $persistent, $auth, $connectionParameters);
} else {
- $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, true, $auth);
+ $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, $persistent, $auth);
}
if (isset($config['failover_mode'])) {
@@ -104,17 +105,25 @@ class RedisFactory {
$connectionParameters = [
'stream' => $this->getSslContext($config)
];
- /**
- * even though the stubs and documentation don't want you to know this,
- * pconnect does have the same $connectionParameters argument connect has
- *
- * https://github.com/phpredis/phpredis/blob/0264de1824b03fb2d0ad515b4d4ec019cd2dae70/redis.c#L710-L730
- *
- * @psalm-suppress TooManyArguments
- */
- $this->instance->pconnect($host, $port, $timeout, null, 0, $readTimeout, $connectionParameters);
+ if ($persistent) {
+ /**
+ * even though the stubs and documentation don't want you to know this,
+ * pconnect does have the same $connectionParameters argument connect has
+ *
+ * https://github.com/phpredis/phpredis/blob/0264de1824b03fb2d0ad515b4d4ec019cd2dae70/redis.c#L710-L730
+ *
+ * @psalm-suppress TooManyArguments
+ */
+ $this->instance->pconnect($host, $port, $timeout, null, 0, $readTimeout, $connectionParameters);
+ } else {
+ $this->instance->connect($host, $port, $timeout, null, 0, $readTimeout, $connectionParameters);
+ }
} else {
- $this->instance->pconnect($host, $port, $timeout, null, 0, $readTimeout);
+ if ($persistent) {
+ $this->instance->pconnect($host, $port, $timeout, null, 0, $readTimeout);
+ } else {
+ $this->instance->connect($host, $port, $timeout, null, 0, $readTimeout);
+ }
}