diff options
Diffstat (limited to 'lib')
39 files changed, 245 insertions, 34 deletions
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 81fc7601c78..1b605dfae19 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -1190,6 +1190,7 @@ return array( 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', 'OC\\Repair\\Owncloud\\SaveAccountsTableData' => $baseDir . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php', 'OC\\Repair\\RemoveLinkShares' => $baseDir . '/lib/private/Repair/RemoveLinkShares.php', + 'OC\\Repair\\RepairDavShares' => $baseDir . '/lib/private/Repair/RepairDavShares.php', 'OC\\Repair\\RepairInvalidShares' => $baseDir . '/lib/private/Repair/RepairInvalidShares.php', 'OC\\Repair\\RepairMimeTypes' => $baseDir . '/lib/private/Repair/RepairMimeTypes.php', 'OC\\Repair\\SqliteAutoincrement' => $baseDir . '/lib/private/Repair/SqliteAutoincrement.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 02b476d57ba..78dfbfe0437 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -1219,6 +1219,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', 'OC\\Repair\\Owncloud\\SaveAccountsTableData' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php', 'OC\\Repair\\RemoveLinkShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RemoveLinkShares.php', + 'OC\\Repair\\RepairDavShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairDavShares.php', 'OC\\Repair\\RepairInvalidShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairInvalidShares.php', 'OC\\Repair\\RepairMimeTypes' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairMimeTypes.php', 'OC\\Repair\\SqliteAutoincrement' => __DIR__ . '/../../..' . '/lib/private/Repair/SqliteAutoincrement.php', diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js index 126b50acb96..e1906178bed 100644 --- a/lib/l10n/cs.js +++ b/lib/l10n/cs.js @@ -71,6 +71,9 @@ OC.L10N.register( "seconds ago" : "před pár sekundami", "Empty file" : "Prázdný soubor", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s identifikátorem: %s neexistuje. Povolte ho v nastavení aplikací, nebo se obraťte na správce.", + "File already exists" : "Soubor už existuje", + "Failed to create file from template" : "Vytvoření souboru ze šablony selhalo", + "Templates" : "Šablony", "File name is a reserved word" : "Název souboru je rezervované slovo", "File name contains at least one invalid character" : "Název souboru obsahuje nejméně jeden neplatný znak", "File name is too long" : "Název souboru je příliš dlouhý", @@ -117,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Soubory nelze sdílet s oprávněními k vytváření", "Expiration date is in the past" : "Datum skončení platnosti je v minulosti", "Can’t set expiration date more than %s days in the future" : "Nelze nastavit datum skončení platnosti více než %s dní v budoucnu", + "Sharing is only allowed with group members" : "Je povoleno pouze sdílení s členy skupiny", "%1$s shared »%2$s« with you" : "%1$s s vámi sdílí „%2$s“", "%1$s shared »%2$s« with you." : "%1$s vám nasdílel(a) „%2$s“.", "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.", diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json index 83ded4b1f4b..5e7d24e8384 100644 --- a/lib/l10n/cs.json +++ b/lib/l10n/cs.json @@ -69,6 +69,9 @@ "seconds ago" : "před pár sekundami", "Empty file" : "Prázdný soubor", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s identifikátorem: %s neexistuje. Povolte ho v nastavení aplikací, nebo se obraťte na správce.", + "File already exists" : "Soubor už existuje", + "Failed to create file from template" : "Vytvoření souboru ze šablony selhalo", + "Templates" : "Šablony", "File name is a reserved word" : "Název souboru je rezervované slovo", "File name contains at least one invalid character" : "Název souboru obsahuje nejméně jeden neplatný znak", "File name is too long" : "Název souboru je příliš dlouhý", @@ -115,6 +118,7 @@ "Files can’t be shared with create permissions" : "Soubory nelze sdílet s oprávněními k vytváření", "Expiration date is in the past" : "Datum skončení platnosti je v minulosti", "Can’t set expiration date more than %s days in the future" : "Nelze nastavit datum skončení platnosti více než %s dní v budoucnu", + "Sharing is only allowed with group members" : "Je povoleno pouze sdílení s členy skupiny", "%1$s shared »%2$s« with you" : "%1$s s vámi sdílí „%2$s“", "%1$s shared »%2$s« with you." : "%1$s vám nasdílel(a) „%2$s“.", "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.", diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 23fd7d086cf..91a18afb564 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Dateien mit Erstell-Berechtigungen können nicht geteilt werden", "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", "Can’t set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", + "Sharing is only allowed with group members" : "Teilen ist nur mit Gruppenmitgliedern erlaubt", "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Dir geteilt", "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Dir geteilt.", "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche.", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index 15c988cd180..0c88be9c936 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Dateien mit Erstell-Berechtigungen können nicht geteilt werden", "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", "Can’t set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", + "Sharing is only allowed with group members" : "Teilen ist nur mit Gruppenmitgliedern erlaubt", "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Dir geteilt", "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Dir geteilt.", "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche.", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index b9fc77624bf..a8f9362fdb7 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Dateien mit Erstell-Berechtigungen können nicht geteilt werden", "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", "Can’t set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", + "Sharing is only allowed with group members" : "Teilen ist nur mit Gruppenmitgliedern erlaubt", "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Ihnen geteilt", "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Ihnen geteilt.", "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche.", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index e1475ce4bfb..484e3df8668 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Dateien mit Erstell-Berechtigungen können nicht geteilt werden", "Expiration date is in the past" : "Das Ablaufdatum liegt in der Vergangenheit.", "Can’t set expiration date more than %s days in the future" : "Das Ablaufdatum kann nicht mehr als %s Tage in der Zukunft liegen", + "Sharing is only allowed with group members" : "Teilen ist nur mit Gruppenmitgliedern erlaubt", "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Ihnen geteilt", "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Ihnen geteilt.", "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche.", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index a258a225479..36f89452ce3 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", "Expiration date is in the past" : "Ha pasado la fecha de caducidad", "Can’t set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración a más de %s días en el futuro", + "Sharing is only allowed with group members" : "Sólo está permitido compartir a los integrantes del grupo", "%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo", "%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.", "Click the button below to open it." : "Haz clic en el botón de abajo para abrirlo.", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 47db4376940..d9593e08a6c 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", "Expiration date is in the past" : "Ha pasado la fecha de caducidad", "Can’t set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración a más de %s días en el futuro", + "Sharing is only allowed with group members" : "Sólo está permitido compartir a los integrantes del grupo", "%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo", "%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.", "Click the button below to open it." : "Haz clic en el botón de abajo para abrirlo.", diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js index dbc4fbc1b67..a03841dd1f2 100644 --- a/lib/l10n/eu.js +++ b/lib/l10n/eu.js @@ -48,6 +48,8 @@ OC.L10N.register( "in a few seconds" : "segundo gutxitan", "seconds ago" : "duela segundu batzuk", "Empty file" : "Fitxategi hutsa", + "File already exists" : "Badago izen bereko fitxategi bat", + "Templates" : "Txantiloiak", "File name is a reserved word" : "Fitxategi izena hitz erreserbatua da", "File name contains at least one invalid character" : "Fitxategi izenak karaktere baliogabe bat du gutxienez ", "File name is too long" : "Fitxategi-izena luzeegia da", diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json index 677f493a683..ca31c12b599 100644 --- a/lib/l10n/eu.json +++ b/lib/l10n/eu.json @@ -46,6 +46,8 @@ "in a few seconds" : "segundo gutxitan", "seconds ago" : "duela segundu batzuk", "Empty file" : "Fitxategi hutsa", + "File already exists" : "Badago izen bereko fitxategi bat", + "Templates" : "Txantiloiak", "File name is a reserved word" : "Fitxategi izena hitz erreserbatua da", "File name contains at least one invalid character" : "Fitxategi izenak karaktere baliogabe bat du gutxienez ", "File name is too long" : "Fitxategi-izena luzeegia da", diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js index 48952984600..ac01b37634d 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Non é posíbel compartir ficheiros con permisos de creación", "Expiration date is in the past" : "Xa pasou a data de caducidade", "Can’t set expiration date more than %s days in the future" : "Non é posíbel estabelecer a data de caducidade máis alo de %s días no futuro", + "Sharing is only allowed with group members" : "Só se permite compartir cos membros do grupo", "%1$s shared »%2$s« with you" : "%1$s compartiu «%2$s» con vostede", "%1$s shared »%2$s« with you." : "%1$s compartiu «%2$s» con vostede.", "Click the button below to open it." : "Prema no botón de embaixo para abrilo.", diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index 6180840f716..4a939684e9d 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Non é posíbel compartir ficheiros con permisos de creación", "Expiration date is in the past" : "Xa pasou a data de caducidade", "Can’t set expiration date more than %s days in the future" : "Non é posíbel estabelecer a data de caducidade máis alo de %s días no futuro", + "Sharing is only allowed with group members" : "Só se permite compartir cos membros do grupo", "%1$s shared »%2$s« with you" : "%1$s compartiu «%2$s» con vostede", "%1$s shared »%2$s« with you." : "%1$s compartiu «%2$s» con vostede.", "Click the button below to open it." : "Prema no botón de embaixo para abrilo.", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index c4e27ed9ba4..c339ae1b773 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "I file non possono essere condivisi con permessi di creazione", "Expiration date is in the past" : "La data di scadenza è nel passato", "Can’t set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", + "Sharing is only allowed with group members" : "La condivisione è consentita solo con i membri del gruppo", "%1$s shared »%2$s« with you" : "%1$s ha condiviso «%2$s» con te", "%1$s shared »%2$s« with you." : "%1$s ha condiviso «%2$s» con te.", "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index 49194e50a0e..730f78dfe32 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "I file non possono essere condivisi con permessi di creazione", "Expiration date is in the past" : "La data di scadenza è nel passato", "Can’t set expiration date more than %s days in the future" : "Impossibile impostare la data di scadenza a più di %s giorni nel futuro", + "Sharing is only allowed with group members" : "La condivisione è consentita solo con i membri del gruppo", "%1$s shared »%2$s« with you" : "%1$s ha condiviso «%2$s» con te", "%1$s shared »%2$s« with you." : "%1$s ha condiviso «%2$s» con te.", "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js index 16ed9415488..f3916e5cdbc 100644 --- a/lib/l10n/nl.js +++ b/lib/l10n/nl.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Bestanden kunnen niet worden gedeeld met 'creëer' permissies", "Expiration date is in the past" : "De vervaldatum ligt in het verleden", "Can’t set expiration date more than %s days in the future" : "Kan de vervaldatum niet meer dan %s dagen in de toekomst instellen", + "Sharing is only allowed with group members" : "Delen kan alleen met groepsleden", "%1$s shared »%2$s« with you" : "%1$s deelde \"%2$s\" met jou", "%1$s shared »%2$s« with you." : "%1$s deelde \"%2$s\" met jou.", "Click the button below to open it." : "Klik de onderstaande button om te openen.", diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json index e98a8028684..ed98ae2f073 100644 --- a/lib/l10n/nl.json +++ b/lib/l10n/nl.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Bestanden kunnen niet worden gedeeld met 'creëer' permissies", "Expiration date is in the past" : "De vervaldatum ligt in het verleden", "Can’t set expiration date more than %s days in the future" : "Kan de vervaldatum niet meer dan %s dagen in de toekomst instellen", + "Sharing is only allowed with group members" : "Delen kan alleen met groepsleden", "%1$s shared »%2$s« with you" : "%1$s deelde \"%2$s\" met jou", "%1$s shared »%2$s« with you." : "%1$s deelde \"%2$s\" met jou.", "Click the button below to open it." : "Klik de onderstaande button om te openen.", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index c5e9323258e..55463f2d2e7 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Pliki nie mogą zostać udostępnione z prawem do tworzenia", "Expiration date is in the past" : "Data ważności już minęła", "Can’t set expiration date more than %s days in the future" : "Nie można ustawić daty ważności na dłuższą niż %s dni", + "Sharing is only allowed with group members" : "Udostępnianie jest dozwolone tylko członkom grupy", "%1$s shared »%2$s« with you" : "%1$s udostępnił Tobie »%2$s«", "%1$s shared »%2$s« with you." : "%1$s udostępnił Tobie »%2$s«.", "Click the button below to open it." : "Kliknij przycisk poniżej, aby otworzyć.", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 34bc2557dcc..3dfa15bac1a 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Pliki nie mogą zostać udostępnione z prawem do tworzenia", "Expiration date is in the past" : "Data ważności już minęła", "Can’t set expiration date more than %s days in the future" : "Nie można ustawić daty ważności na dłuższą niż %s dni", + "Sharing is only allowed with group members" : "Udostępnianie jest dozwolone tylko członkom grupy", "%1$s shared »%2$s« with you" : "%1$s udostępnił Tobie »%2$s«", "%1$s shared »%2$s« with you." : "%1$s udostępnił Tobie »%2$s«.", "Click the button below to open it." : "Kliknij przycisk poniżej, aby otworzyć.", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 84cb9a1ff5d..1de1cdeaf85 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Os arquivos não podem ser compartilhados com permissões de criação", "Expiration date is in the past" : "Data de expiração está no passado", "Can’t set expiration date more than %s days in the future" : "Não é possível definir a expiração mais do que %s dias no futuro", + "Sharing is only allowed with group members" : "O compartilhamento só é permitido com membros do grupo ", "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você", "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.", "Click the button below to open it." : "Clique no botão abaixo para abri-lo.", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index 0f02642ec3f..13ea3dc3323 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Os arquivos não podem ser compartilhados com permissões de criação", "Expiration date is in the past" : "Data de expiração está no passado", "Can’t set expiration date more than %s days in the future" : "Não é possível definir a expiração mais do que %s dias no futuro", + "Sharing is only allowed with group members" : "O compartilhamento só é permitido com membros do grupo ", "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você", "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.", "Click the button below to open it." : "Clique no botão abaixo para abri-lo.", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 781bc796206..05bbe3a7ab3 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Файлы не могут иметь общий доступ с правами на создание", "Expiration date is in the past" : "Дата окончания срока действия уже прошла", "Can’t set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", + "Sharing is only allowed with group members" : "Разрешено публиковать только для участников группы", "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»", "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».", "Click the button below to open it." : "Нажмите расположенную ниже кнопку для перехода к полученному общему ресурсу.", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 6cc6180d51f..dfcd6288663 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Файлы не могут иметь общий доступ с правами на создание", "Expiration date is in the past" : "Дата окончания срока действия уже прошла", "Can’t set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней", + "Sharing is only allowed with group members" : "Разрешено публиковать только для участников группы", "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»", "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».", "Click the button below to open it." : "Нажмите расположенную ниже кнопку для перехода к полученному общему ресурсу.", diff --git a/lib/l10n/sc.js b/lib/l10n/sc.js new file mode 100644 index 00000000000..6da1b1e8920 --- /dev/null +++ b/lib/l10n/sc.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "lib", + { + "This is an automatically sent email, please do not reply." : "Custu est unu messàgiu de posta imbiadu in automàticu, non rispondas.", + "Settings" : "Impostatziones" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/sc.json b/lib/l10n/sc.json new file mode 100644 index 00000000000..5fba8257651 --- /dev/null +++ b/lib/l10n/sc.json @@ -0,0 +1,5 @@ +{ "translations": { + "This is an automatically sent email, please do not reply." : "Custu est unu messàgiu de posta imbiadu in automàticu, non rispondas.", + "Settings" : "Impostatziones" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/si.js b/lib/l10n/si.js new file mode 100644 index 00000000000..7b1fb3a0a76 --- /dev/null +++ b/lib/l10n/si.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "lib", + { + "seconds ago" : "තත්පර කිහිපයකට පෙර", + "Help" : "උපකාර", + "Apps" : "යෙදුම්", + "Settings" : "සැකසුම්", + "Log out" : "නික්මෙන්න", + "Users" : "පරිශීලකයින්" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/si.json b/lib/l10n/si.json new file mode 100644 index 00000000000..e82e0f396df --- /dev/null +++ b/lib/l10n/si.json @@ -0,0 +1,9 @@ +{ "translations": { + "seconds ago" : "තත්පර කිහිපයකට පෙර", + "Help" : "උපකාර", + "Apps" : "යෙදුම්", + "Settings" : "සැකසුම්", + "Log out" : "නික්මෙන්න", + "Users" : "පරිශීලකයින්" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index 43365676bcc..0bc65aab382 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "Ekleme izni ile dosya paylaşılamaz", "Expiration date is in the past" : "Son kullanma tarihi geçmişte", "Can’t set expiration date more than %s days in the future" : "Son kullanma tarihi %sgünden sonrası olarak ayarlanamaz", + "Sharing is only allowed with group members" : "Paylaşım yalnız grup üyeleri ile yapılabilir", "%1$s shared »%2$s« with you" : "%1$s, sizinle »%2$s« ögesini paylaştı", "%1$s shared »%2$s« with you." : "%1$s, sizinle »%2$s« ögesini paylaştı.", "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index 9a8ab7634f1..63f49b9510c 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "Ekleme izni ile dosya paylaşılamaz", "Expiration date is in the past" : "Son kullanma tarihi geçmişte", "Can’t set expiration date more than %s days in the future" : "Son kullanma tarihi %sgünden sonrası olarak ayarlanamaz", + "Sharing is only allowed with group members" : "Paylaşım yalnız grup üyeleri ile yapılabilir", "%1$s shared »%2$s« with you" : "%1$s, sizinle »%2$s« ögesini paylaştı", "%1$s shared »%2$s« with you." : "%1$s, sizinle »%2$s« ögesini paylaştı.", "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js index 898d6820416..fdfe9f90a80 100644 --- a/lib/l10n/zh_CN.js +++ b/lib/l10n/zh_CN.js @@ -120,6 +120,7 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "无法共享有创建权限的文件", "Expiration date is in the past" : "到期日期已过", "Can’t set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天。", + "Sharing is only allowed with group members" : "只允许与群组成员共享", "%1$s shared »%2$s« with you" : "%1$s 对您共享了 »%2$s«", "%1$s shared »%2$s« with you." : "%1$s 对您共享了 »%2$s«。", "Click the button below to open it." : "点击下方按钮可打开它。", diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json index 3c44ebe0efc..dbd6d4ca6c5 100644 --- a/lib/l10n/zh_CN.json +++ b/lib/l10n/zh_CN.json @@ -118,6 +118,7 @@ "Files can’t be shared with create permissions" : "无法共享有创建权限的文件", "Expiration date is in the past" : "到期日期已过", "Can’t set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天。", + "Sharing is only allowed with group members" : "只允许与群组成员共享", "%1$s shared »%2$s« with you" : "%1$s 对您共享了 »%2$s«", "%1$s shared »%2$s« with you." : "%1$s 对您共享了 »%2$s«。", "Click the button below to open it." : "点击下方按钮可打开它。", diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js index 235781807ad..ff1ada5cce0 100644 --- a/lib/l10n/zh_HK.js +++ b/lib/l10n/zh_HK.js @@ -47,7 +47,7 @@ OC.L10N.register( "Remote wipe finished" : "遠端抹除已完成", "The remote wipe on %s has finished" : "%s 的遠端抹除已經完成", "Authentication" : "認證", - "Unknown filetype" : "未知的檔案類型", + "Unknown filetype" : "不詳的檔案類型", "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", @@ -81,14 +81,14 @@ OC.L10N.register( "Empty filename is not allowed" : "不允許空白的檔名", "App \"%s\" cannot be installed because appinfo file cannot be read." : "應用程式 \"%s\" 無法安裝,因為無法讀取 appinfo 檔案。", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "應用程式 \"%s\" 無法安裝,因為該應用程式不相容於目前版本的伺服器。", - "__language_name__" : "正體中文(臺灣)", + "__language_name__" : "正體中文(香港)", "This is an automatically sent email, please do not reply." : "此為自動寄送的電子郵件,請不要回覆。", "Help" : "說明", "Apps" : "應用程式", "Settings" : "設定", "Log out" : "登出", - "Users" : "使用者", - "Unknown user" : "未知的使用者", + "Users" : "用戶", + "Unknown user" : "用戶不詳", "Additional settings" : "其他設定", "%s enter the database username and name." : "%s 輸入資料庫名稱及使用者名稱", "%s enter the database username." : "%s 輸入資料庫使用者名稱", @@ -120,18 +120,19 @@ OC.L10N.register( "Files can’t be shared with create permissions" : "無法分享具有新建權限的檔案", "Expiration date is in the past" : "到期日為過去的日期", "Can’t set expiration date more than %s days in the future" : "到期日不能設定為 %s 天以後的日期", + "Sharing is only allowed with group members" : "僅允許在群組成員中共享", "%1$s shared »%2$s« with you" : "%1$s 與您分享了 %2$s", "%1$s shared »%2$s« with you." : "%1$s 與您分享了 %2$s", "Click the button below to open it." : "點下方連結開啟", "The requested share does not exist anymore" : "該分享已經不存在", "Could not find category \"%s\"" : "找不到分類:\"%s\"", - "Sunday" : "週日", - "Monday" : "週一", - "Tuesday" : "週二", - "Wednesday" : "週三", - "Thursday" : "週四", - "Friday" : "週五", - "Saturday" : "週六", + "Sunday" : "星期日", + "Monday" : "星期一", + "Tuesday" : "星期二", + "Wednesday" : "星期三", + "Thursday" : "星期四", + "Friday" : "星期五", + "Saturday" : "星期六", "Sun." : "日", "Mon." : "一", "Tue." : "二", @@ -171,16 +172,16 @@ OC.L10N.register( "Nov." : "十一月", "Dec." : "十二月", "The user limit has been reached and the user was not created." : "用戶數量已達上限,無法創建新用戶。", - "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-'\"", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", 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" : "使用者名稱不能只包含小數點", "Username is invalid because files already exist for this user" : "使用者名稱無效,因為使用者的檔案已經存在", "A valid password must be provided" : "須提供有效的密碼", "The username is already being used" : "這個使用者名稱已經有人使用了", - "Could not create user" : "無法建立使用者", - "User disabled" : "使用者已停用", - "Login canceled by app" : "應用程式取消了登入", + "Could not create user" : "無法建立用戶", + "User disabled" : "用戶已停用", + "Login canceled by app" : "登錄已被應用程式取消", "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "應用程式 \"%1$s\" 無法被安裝,缺少下列所需元件: %2$s", "a safe home for all your data" : "您資料的安全屋", "File is currently busy, please try again later" : "檔案目前忙碌中,請稍候再試", diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json index 99ea67540c2..ed5112c4b69 100644 --- a/lib/l10n/zh_HK.json +++ b/lib/l10n/zh_HK.json @@ -45,7 +45,7 @@ "Remote wipe finished" : "遠端抹除已完成", "The remote wipe on %s has finished" : "%s 的遠端抹除已經完成", "Authentication" : "認證", - "Unknown filetype" : "未知的檔案類型", + "Unknown filetype" : "不詳的檔案類型", "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", @@ -79,14 +79,14 @@ "Empty filename is not allowed" : "不允許空白的檔名", "App \"%s\" cannot be installed because appinfo file cannot be read." : "應用程式 \"%s\" 無法安裝,因為無法讀取 appinfo 檔案。", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "應用程式 \"%s\" 無法安裝,因為該應用程式不相容於目前版本的伺服器。", - "__language_name__" : "正體中文(臺灣)", + "__language_name__" : "正體中文(香港)", "This is an automatically sent email, please do not reply." : "此為自動寄送的電子郵件,請不要回覆。", "Help" : "說明", "Apps" : "應用程式", "Settings" : "設定", "Log out" : "登出", - "Users" : "使用者", - "Unknown user" : "未知的使用者", + "Users" : "用戶", + "Unknown user" : "用戶不詳", "Additional settings" : "其他設定", "%s enter the database username and name." : "%s 輸入資料庫名稱及使用者名稱", "%s enter the database username." : "%s 輸入資料庫使用者名稱", @@ -118,18 +118,19 @@ "Files can’t be shared with create permissions" : "無法分享具有新建權限的檔案", "Expiration date is in the past" : "到期日為過去的日期", "Can’t set expiration date more than %s days in the future" : "到期日不能設定為 %s 天以後的日期", + "Sharing is only allowed with group members" : "僅允許在群組成員中共享", "%1$s shared »%2$s« with you" : "%1$s 與您分享了 %2$s", "%1$s shared »%2$s« with you." : "%1$s 與您分享了 %2$s", "Click the button below to open it." : "點下方連結開啟", "The requested share does not exist anymore" : "該分享已經不存在", "Could not find category \"%s\"" : "找不到分類:\"%s\"", - "Sunday" : "週日", - "Monday" : "週一", - "Tuesday" : "週二", - "Wednesday" : "週三", - "Thursday" : "週四", - "Friday" : "週五", - "Saturday" : "週六", + "Sunday" : "星期日", + "Monday" : "星期一", + "Tuesday" : "星期二", + "Wednesday" : "星期三", + "Thursday" : "星期四", + "Friday" : "星期五", + "Saturday" : "星期六", "Sun." : "日", "Mon." : "一", "Tue." : "二", @@ -169,16 +170,16 @@ "Nov." : "十一月", "Dec." : "十二月", "The user limit has been reached and the user was not created." : "用戶數量已達上限,無法創建新用戶。", - "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "使用者名稱當中只能包含下列字元:\"a-z\", \"A-Z\", \"0-9\", 和 \"_.@-'\"", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", 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" : "使用者名稱不能只包含小數點", "Username is invalid because files already exist for this user" : "使用者名稱無效,因為使用者的檔案已經存在", "A valid password must be provided" : "須提供有效的密碼", "The username is already being used" : "這個使用者名稱已經有人使用了", - "Could not create user" : "無法建立使用者", - "User disabled" : "使用者已停用", - "Login canceled by app" : "應用程式取消了登入", + "Could not create user" : "無法建立用戶", + "User disabled" : "用戶已停用", + "Login canceled by app" : "登錄已被應用程式取消", "App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "應用程式 \"%1$s\" 無法被安裝,缺少下列所需元件: %2$s", "a safe home for all your data" : "您資料的安全屋", "File is currently busy, please try again later" : "檔案目前忙碌中,請稍候再試", diff --git a/lib/private/Http/CookieHelper.php b/lib/private/Http/CookieHelper.php index f7b871c5001..122f4907b2a 100644 --- a/lib/private/Http/CookieHelper.php +++ b/lib/private/Http/CookieHelper.php @@ -43,7 +43,7 @@ class CookieHelper { $header = sprintf( 'Set-Cookie: %s=%s', $name, - urlencode($value) + rawurlencode($value) ); if ($path !== '') { diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 60609de4170..b5e093765fd 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -52,6 +52,7 @@ use OC\Repair\OldGroupMembershipShares; use OC\Repair\Owncloud\DropAccountTermsTable; use OC\Repair\Owncloud\SaveAccountsTableData; use OC\Repair\RemoveLinkShares; +use OC\Repair\RepairDavShares; use OC\Repair\RepairInvalidShares; use OC\Repair\RepairMimeTypes; use OC\Repair\SqliteAutoincrement; @@ -156,6 +157,7 @@ class Repair implements IOutput { new RemoveLinkShares(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig(), \OC::$server->getGroupManager(), \OC::$server->getNotificationManager(), \OC::$server->query(ITimeFactory::class)), new ClearCollectionsAccessCache(\OC::$server->getConfig(), \OC::$server->query(IManager::class)), \OC::$server->query(ResetGeneratedAvatarFlag::class), + \OC::$server->query(RepairDavShares::class) ]; } @@ -184,7 +186,7 @@ class Repair implements IOutput { new Collation(\OC::$server->getConfig(), \OC::$server->getLogger(), $connection, true), new SqliteAutoincrement($connection), new SaveAccountsTableData($connection, $config), - new DropAccountTermsTable($connection) + new DropAccountTermsTable($connection), ]; return $steps; diff --git a/lib/private/Repair/RepairDavShares.php b/lib/private/Repair/RepairDavShares.php new file mode 100644 index 00000000000..e00a34997d4 --- /dev/null +++ b/lib/private/Repair/RepairDavShares.php @@ -0,0 +1,138 @@ +<?php + +declare(strict_types=1); +/** + * @copyright Copyright (c) 2020 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Repair; + +use Doctrine\DBAL\DBALException; +use OCP\IConfig; +use OCP\IDBConnection; +use OCP\IGroupManager; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; +use Psr\Log\LoggerInterface; +use function strlen; +use function substr; +use function urldecode; +use function urlencode; + +class RepairDavShares implements IRepairStep { + protected const GROUP_PRINCIPAL_PREFIX = 'principals/groups/'; + + /** @var IConfig */ + private $config; + /** @var IDBConnection */ + private $dbc; + /** @var IGroupManager */ + private $groupManager; + /** @var LoggerInterface */ + private $logger; + /** @var bool */ + private $hintInvalidShares = false; + + public function __construct( + IConfig $config, + IDBConnection $dbc, + IGroupManager $groupManager, + LoggerInterface $logger + ) { + $this->config = $config; + $this->dbc = $dbc; + $this->groupManager = $groupManager; + $this->logger = $logger; + } + + /** + * @inheritDoc + */ + public function getName() { + return 'Repair DAV shares'; + } + + protected function repairUnencodedGroupShares() { + $qb = $this->dbc->getQueryBuilder(); + $qb->select(['id', 'principaluri']) + ->from('dav_shares') + ->where($qb->expr()->like('principaluri', $qb->createNamedParameter(self::GROUP_PRINCIPAL_PREFIX . '%'))); + + $updateQuery = $this->dbc->getQueryBuilder(); + $updateQuery->update('dav_shares') + ->set('principaluri', $updateQuery->createParameter('updatedPrincipalUri')) + ->where($updateQuery->expr()->eq('id', $updateQuery->createParameter('shareId'))); + + $statement = $qb->execute(); + while ($share = $statement->fetch()) { + $gid = substr($share['principaluri'], strlen(self::GROUP_PRINCIPAL_PREFIX)); + $decodedGid = urldecode($gid); + $encodedGid = urlencode($gid); + if ($gid === $encodedGid + || !$this->groupManager->groupExists($gid) + || ($gid !== $decodedGid && $this->groupManager->groupExists($decodedGid)) + ) { + $this->hintInvalidShares = $this->hintInvalidShares || $gid !== $encodedGid; + continue; + } + + // Repair when + // + the group name needs encoding + // + AND it is not encoded yet + // + AND there are no ambivalent groups + + try { + $fixedPrincipal = self::GROUP_PRINCIPAL_PREFIX . $encodedGid; + $logParameters = [ + 'app' => 'core', + 'id' => $share['id'], + 'old' => $share['principaluri'], + 'new' => $fixedPrincipal, + ]; + $updateQuery + ->setParameter('updatedPrincipalUri', $fixedPrincipal) + ->setParameter('shareId', $share['id']) + ->execute(); + $this->logger->info('Repaired principal for dav share {id} from {old} to {new}', $logParameters); + } catch (DBALException $e) { + $logParameters['message'] = $e->getMessage(); + $logParameters['exception'] = $e; + $this->logger->info('Could not repair principal for dav share {id} from {old} to {new}: {message}', $logParameters); + } + } + return true; + } + + /** + * @inheritDoc + */ + public function run(IOutput $output) { + $versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0'); + if (version_compare($versionFromBeforeUpdate, '19.0.9', '<') + && $this->repairUnencodedGroupShares() + ) { + $output->info('Repaired DAV group shares'); + if ($this->hintInvalidShares) { + $output->info('Invalid shares might be left in the database, running "occ dav:remove-invalid-shares" can remove them.'); + } + } + } +} diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 35374fd167c..0f709482014 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -542,7 +542,8 @@ class Manager implements IManager { $this->groupManager->getUserGroupIds($sharedWith) ); if (empty($groups)) { - throw new \Exception('Sharing is only allowed with group members'); + $message_t = $this->l->t('Sharing is only allowed with group members'); + throw new \Exception($message_t); } } diff --git a/lib/public/AppFramework/Http/ZipResponse.php b/lib/public/AppFramework/Http/ZipResponse.php index 1e4b584fd20..a5cc82ebad8 100644 --- a/lib/public/AppFramework/Http/ZipResponse.php +++ b/lib/public/AppFramework/Http/ZipResponse.php @@ -38,7 +38,7 @@ use OCP\IRequest; */ class ZipResponse extends Response implements ICallbackResponse { /** @var resource[] Files to be added to the zip response */ - private $resources; + private $resources = []; /** @var string Filename that the zip file should have */ private $name; private $request; |