diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/l10n/br.js | 1 | ||||
-rw-r--r-- | lib/l10n/br.json | 1 | ||||
-rw-r--r-- | lib/l10n/de_DE.js | 2 | ||||
-rw-r--r-- | lib/l10n/de_DE.json | 2 | ||||
-rw-r--r-- | lib/l10n/en_GB.js | 2 | ||||
-rw-r--r-- | lib/l10n/en_GB.json | 2 | ||||
-rw-r--r-- | lib/l10n/ga.js | 2 | ||||
-rw-r--r-- | lib/l10n/ga.json | 2 | ||||
-rw-r--r-- | lib/l10n/gl.js | 2 | ||||
-rw-r--r-- | lib/l10n/gl.json | 2 | ||||
-rw-r--r-- | lib/l10n/hu.js | 1 | ||||
-rw-r--r-- | lib/l10n/hu.json | 1 | ||||
-rw-r--r-- | lib/l10n/nb.js | 2 | ||||
-rw-r--r-- | lib/l10n/nb.json | 2 | ||||
-rw-r--r-- | lib/l10n/pt_BR.js | 2 | ||||
-rw-r--r-- | lib/l10n/pt_BR.json | 2 | ||||
-rw-r--r-- | lib/l10n/sr@latin.js | 2 | ||||
-rw-r--r-- | lib/l10n/sr@latin.json | 2 | ||||
-rw-r--r-- | lib/l10n/sv.js | 2 | ||||
-rw-r--r-- | lib/l10n/sv.json | 2 | ||||
-rw-r--r-- | lib/l10n/zh_TW.js | 2 | ||||
-rw-r--r-- | lib/l10n/zh_TW.json | 2 | ||||
-rw-r--r-- | lib/private/DB/Connection.php | 71 | ||||
-rw-r--r-- | lib/private/DB/ConnectionAdapter.php | 4 | ||||
-rw-r--r-- | lib/private/Files/View.php | 4 | ||||
-rw-r--r-- | lib/private/RedisFactory.php | 33 |
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); + } } |