summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/encryption/appinfo/info.xml2
-rw-r--r--apps/encryption/l10n/ar.js1
-rw-r--r--apps/encryption/l10n/ar.json1
-rw-r--r--apps/encryption/l10n/ast.js1
-rw-r--r--apps/encryption/l10n/ast.json1
-rw-r--r--apps/encryption/l10n/az.js1
-rw-r--r--apps/encryption/l10n/az.json1
-rw-r--r--apps/encryption/l10n/bg_BG.js1
-rw-r--r--apps/encryption/l10n/bg_BG.json1
-rw-r--r--apps/encryption/l10n/ca.js1
-rw-r--r--apps/encryption/l10n/ca.json1
-rw-r--r--apps/encryption/l10n/cs_CZ.js1
-rw-r--r--apps/encryption/l10n/cs_CZ.json1
-rw-r--r--apps/encryption/l10n/da.js1
-rw-r--r--apps/encryption/l10n/da.json1
-rw-r--r--apps/encryption/l10n/de.js2
-rw-r--r--apps/encryption/l10n/de.json2
-rw-r--r--apps/encryption/l10n/de_DE.js4
-rw-r--r--apps/encryption/l10n/de_DE.json4
-rw-r--r--apps/encryption/l10n/el.js1
-rw-r--r--apps/encryption/l10n/el.json1
-rw-r--r--apps/encryption/l10n/en_GB.js1
-rw-r--r--apps/encryption/l10n/en_GB.json1
-rw-r--r--apps/encryption/l10n/es.js7
-rw-r--r--apps/encryption/l10n/es.json7
-rw-r--r--apps/encryption/l10n/es_AR.js1
-rw-r--r--apps/encryption/l10n/es_AR.json1
-rw-r--r--apps/encryption/l10n/es_MX.js1
-rw-r--r--apps/encryption/l10n/es_MX.json1
-rw-r--r--apps/encryption/l10n/et_EE.js1
-rw-r--r--apps/encryption/l10n/et_EE.json1
-rw-r--r--apps/encryption/l10n/eu.js1
-rw-r--r--apps/encryption/l10n/eu.json1
-rw-r--r--apps/encryption/l10n/fi_FI.js2
-rw-r--r--apps/encryption/l10n/fi_FI.json2
-rw-r--r--apps/encryption/l10n/fr.js3
-rw-r--r--apps/encryption/l10n/fr.json3
-rw-r--r--apps/encryption/l10n/gl.js2
-rw-r--r--apps/encryption/l10n/gl.json2
-rw-r--r--apps/encryption/l10n/hr.js1
-rw-r--r--apps/encryption/l10n/hr.json1
-rw-r--r--apps/encryption/l10n/hu_HU.js1
-rw-r--r--apps/encryption/l10n/hu_HU.json1
-rw-r--r--apps/encryption/l10n/id.js1
-rw-r--r--apps/encryption/l10n/id.json1
-rw-r--r--apps/encryption/l10n/it.js2
-rw-r--r--apps/encryption/l10n/it.json2
-rw-r--r--apps/encryption/l10n/ja.js1
-rw-r--r--apps/encryption/l10n/ja.json1
-rw-r--r--apps/encryption/l10n/ko.js1
-rw-r--r--apps/encryption/l10n/ko.json1
-rw-r--r--apps/encryption/l10n/lt_LT.js1
-rw-r--r--apps/encryption/l10n/lt_LT.json1
-rw-r--r--apps/encryption/l10n/nb_NO.js1
-rw-r--r--apps/encryption/l10n/nb_NO.json1
-rw-r--r--apps/encryption/l10n/nl.js2
-rw-r--r--apps/encryption/l10n/nl.json2
-rw-r--r--apps/encryption/l10n/pl.js1
-rw-r--r--apps/encryption/l10n/pl.json1
-rw-r--r--apps/encryption/l10n/pt_BR.js2
-rw-r--r--apps/encryption/l10n/pt_BR.json2
-rw-r--r--apps/encryption/l10n/pt_PT.js1
-rw-r--r--apps/encryption/l10n/pt_PT.json1
-rw-r--r--apps/encryption/l10n/ru.js1
-rw-r--r--apps/encryption/l10n/ru.json1
-rw-r--r--apps/encryption/l10n/sk_SK.js1
-rw-r--r--apps/encryption/l10n/sk_SK.json1
-rw-r--r--apps/encryption/l10n/sl.js1
-rw-r--r--apps/encryption/l10n/sl.json1
-rw-r--r--apps/encryption/l10n/sr.js1
-rw-r--r--apps/encryption/l10n/sr.json1
-rw-r--r--apps/encryption/l10n/sv.js1
-rw-r--r--apps/encryption/l10n/sv.json1
-rw-r--r--apps/encryption/l10n/tr.js1
-rw-r--r--apps/encryption/l10n/tr.json1
-rw-r--r--apps/encryption/l10n/uk.js1
-rw-r--r--apps/encryption/l10n/uk.json1
-rw-r--r--apps/encryption/l10n/zh_CN.js1
-rw-r--r--apps/encryption/l10n/zh_CN.json1
-rw-r--r--apps/encryption/l10n/zh_TW.js1
-rw-r--r--apps/encryption/l10n/zh_TW.json1
-rw-r--r--apps/encryption/lib/crypto/encryption.php4
-rw-r--r--apps/files/controller/apicontroller.php1
-rw-r--r--apps/files/index.php1
-rw-r--r--apps/files/js/navigation.js2
-rw-r--r--apps/files/tests/controller/apicontrollertest.php1
-rw-r--r--apps/files_sharing/js/public.js7
-rw-r--r--apps/files_sharing/lib/controllers/sharecontroller.php1
-rw-r--r--apps/files_sharing/lib/external/storage.php1
-rw-r--r--apps/files_sharing/lib/sharedstorage.php5
-rw-r--r--apps/files_sharing/publicwebdav.php12
-rw-r--r--apps/files_sharing/tests/controller/sharecontroller.php6
-rw-r--r--apps/files_sharing/tests/js/publicAppSpec.js107
-rw-r--r--apps/files_sharing/tests/testcase.php1
-rw-r--r--apps/files_trashbin/tests/storage.php2
-rw-r--r--apps/files_trashbin/tests/trashbin.php1
-rw-r--r--apps/files_versions/command/expire.php1
-rw-r--r--apps/files_versions/tests/versions.php1
-rw-r--r--apps/provisioning_api/lib/users.php36
-rw-r--r--apps/provisioning_api/tests/appstest.php2
-rw-r--r--apps/provisioning_api/tests/groupstest.php12
-rw-r--r--apps/provisioning_api/tests/userstest.php86
-rw-r--r--apps/user_ldap/ajax/testConfiguration.php38
-rw-r--r--apps/user_ldap/command/setconfig.php1
-rw-r--r--apps/user_ldap/group_ldap.php17
-rw-r--r--apps/user_ldap/js/wizard/view.js23
-rw-r--r--apps/user_ldap/js/wizard/wizardTabElementary.js18
-rw-r--r--apps/user_ldap/js/wizard/wizardTabGeneric.js11
-rw-r--r--apps/user_ldap/js/wizard/wizardTabUserFilter.js6
-rw-r--r--apps/user_ldap/lib/ldap.php4
-rw-r--r--apps/user_ldap/lib/wizard.php24
-rw-r--r--apps/user_ldap/tests/group_ldap.php70
-rw-r--r--config/config.sample.php21
-rw-r--r--core/ajax/share.php8
-rw-r--r--core/command/db/converttype.php1
-rw-r--r--core/css/styles.css3
-rw-r--r--core/js/setup.js2
-rw-r--r--core/js/share.js2
-rw-r--r--core/l10n/de_DE.js2
-rw-r--r--core/l10n/de_DE.json2
-rw-r--r--core/templates/installation.php7
-rw-r--r--lib/l10n/de.js3
-rw-r--r--lib/l10n/de.json3
-rw-r--r--lib/l10n/de_DE.js3
-rw-r--r--lib/l10n/de_DE.json3
-rw-r--r--lib/l10n/es.js1
-rw-r--r--lib/l10n/es.json1
-rw-r--r--lib/l10n/fi_FI.js2
-rw-r--r--lib/l10n/fi_FI.json2
-rw-r--r--lib/l10n/gl.js1
-rw-r--r--lib/l10n/gl.json1
-rw-r--r--lib/l10n/it.js1
-rw-r--r--lib/l10n/it.json1
-rw-r--r--lib/l10n/nl.js1
-rw-r--r--lib/l10n/nl.json1
-rw-r--r--lib/l10n/pt_BR.js1
-rw-r--r--lib/l10n/pt_BR.json1
-rw-r--r--lib/private/app/codecheckvisitor.php9
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php1
-rw-r--r--lib/private/connector/sabre/objecttree.php2
-rw-r--r--lib/private/encryption/manager.php2
-rw-r--r--lib/private/encryption/util.php2
-rw-r--r--lib/private/files/node/root.php3
-rw-r--r--lib/private/files/objectstore/objectstorestorage.php3
-rw-r--r--lib/private/files/storage/localtempfiletrait.php9
-rw-r--r--lib/private/files/stream/encryption.php2
-rw-r--r--lib/private/group/database.php33
-rw-r--r--lib/private/log.php75
-rw-r--r--lib/private/log/errorhandler.php12
-rw-r--r--lib/private/log/errorlog.php5
-rw-r--r--lib/private/log/owncloud.php68
-rw-r--r--lib/private/log/syslog.php7
-rw-r--r--lib/private/search/result/file.php1
-rw-r--r--lib/private/user.php5
-rw-r--r--lib/private/user/database.php25
-rw-r--r--lib/private/util.php9
-rw-r--r--lib/public/appframework/http/contentsecuritypolicy.php112
-rw-r--r--settings/l10n/cs_CZ.js1
-rw-r--r--settings/l10n/cs_CZ.json1
-rw-r--r--settings/l10n/de.js1
-rw-r--r--settings/l10n/de.json1
-rw-r--r--settings/l10n/de_DE.js1
-rw-r--r--settings/l10n/de_DE.json1
-rw-r--r--settings/l10n/el.js1
-rw-r--r--settings/l10n/el.json1
-rw-r--r--settings/l10n/es.js1
-rw-r--r--settings/l10n/es.json1
-rw-r--r--settings/l10n/fi_FI.js1
-rw-r--r--settings/l10n/fi_FI.json1
-rw-r--r--settings/l10n/fr.js1
-rw-r--r--settings/l10n/fr.json1
-rw-r--r--settings/l10n/gl.js1
-rw-r--r--settings/l10n/gl.json1
-rw-r--r--settings/l10n/id.js1
-rw-r--r--settings/l10n/id.json1
-rw-r--r--settings/l10n/it.js1
-rw-r--r--settings/l10n/it.json1
-rw-r--r--settings/l10n/ko.js1
-rw-r--r--settings/l10n/ko.json1
-rw-r--r--settings/l10n/nl.js1
-rw-r--r--settings/l10n/nl.json1
-rw-r--r--settings/l10n/pt_BR.js1
-rw-r--r--settings/l10n/pt_BR.json1
-rw-r--r--settings/l10n/sr.js1
-rw-r--r--settings/l10n/sr.json1
-rw-r--r--settings/templates/admin.php2
-rw-r--r--tests/core/avatar/avatarcontrollertest.php6
-rw-r--r--tests/karma.config.js3
-rw-r--r--tests/lib/appframework/http/ContentSecurityPolicyTest.php216
-rw-r--r--tests/lib/db/migrator.php29
-rw-r--r--tests/lib/files/node/integration.php1
-rw-r--r--tests/lib/files/stream/encryption.php13
-rw-r--r--tests/lib/logger.php30
-rw-r--r--tests/lib/testcase.php3
194 files changed, 1132 insertions, 276 deletions
diff --git a/apps/encryption/appinfo/info.xml b/apps/encryption/appinfo/info.xml
index 53a2459f864..8d3b680fc08 100644
--- a/apps/encryption/appinfo/info.xml
+++ b/apps/encryption/appinfo/info.xml
@@ -16,7 +16,7 @@
based on AES 128 or 256 bit keys. More information is available in
the Encryption documentation
</description>
- <name>ownCloud Default Encryption Module</name>
+ <name>Default encryption module</name>
<license>AGPL</license>
<author>Bjoern Schiessle, Clark Tomlinson</author>
<requiremin>8</requiremin>
diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js
index 3e3d73ead26..a12c571ea46 100644
--- a/apps/encryption/l10n/ar.js
+++ b/apps/encryption/l10n/ar.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
"Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:",
"Change Password" : "عدل كلمة السر",
diff --git a/apps/encryption/l10n/ar.json b/apps/encryption/l10n/ar.json
index 8cb0aa2e3a5..464504b883d 100644
--- a/apps/encryption/l10n/ar.json
+++ b/apps/encryption/l10n/ar.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
"Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:",
"Change Password" : "عدل كلمة السر",
diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js
index 637a66d178c..94a164ff65d 100644
--- a/apps/encryption/l10n/ast.js
+++ b/apps/encryption/l10n/ast.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
"Change Password" : "Camudar contraseña",
diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json
index 30f3c70aab8..ecd1c2ff2e3 100644
--- a/apps/encryption/l10n/ast.json
+++ b/apps/encryption/l10n/ast.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
"Change Password" : "Camudar contraseña",
diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js
index b82034083e9..a8897f9ec18 100644
--- a/apps/encryption/l10n/az.js
+++ b/apps/encryption/l10n/az.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
"Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
"Change Password" : "Şifrəni dəyişdir",
diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json
index 32f59791733..1dae4fbeaf9 100644
--- a/apps/encryption/l10n/az.json
+++ b/apps/encryption/l10n/az.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
"Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
"Change Password" : "Şifrəni dəyişdir",
diff --git a/apps/encryption/l10n/bg_BG.js b/apps/encryption/l10n/bg_BG.js
index 4683f2c05bc..0a5de0eab85 100644
--- a/apps/encryption/l10n/bg_BG.js
+++ b/apps/encryption/l10n/bg_BG.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.",
"Recovery key password" : "Парола за възстановяане на ключа",
"Change recovery key password:" : "Промени паролата за въстановяване на ключа:",
"Change Password" : "Промени Паролата",
diff --git a/apps/encryption/l10n/bg_BG.json b/apps/encryption/l10n/bg_BG.json
index 562dd0d2af5..12729417191 100644
--- a/apps/encryption/l10n/bg_BG.json
+++ b/apps/encryption/l10n/bg_BG.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.",
"Recovery key password" : "Парола за възстановяане на ключа",
"Change recovery key password:" : "Промени паролата за въстановяване на ключа:",
"Change Password" : "Промени Паролата",
diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js
index d1eff280140..e160a23b722 100644
--- a/apps/encryption/l10n/ca.js
+++ b/apps/encryption/l10n/ca.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.",
"Recovery key password" : "Clau de recuperació de la contrasenya",
"Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:",
"Change Password" : "Canvia la contrasenya",
diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json
index 0bb29d59c5a..464c6e86342 100644
--- a/apps/encryption/l10n/ca.json
+++ b/apps/encryption/l10n/ca.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.",
"Recovery key password" : "Clau de recuperació de la contrasenya",
"Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:",
"Change Password" : "Canvia la contrasenya",
diff --git a/apps/encryption/l10n/cs_CZ.js b/apps/encryption/l10n/cs_CZ.js
index 4aeae1741de..12ef9bb6a4b 100644
--- a/apps/encryption/l10n/cs_CZ.js
+++ b/apps/encryption/l10n/cs_CZ.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.",
"Enable recovery key" : "Povolit záchranný klíč",
"Disable recovery key" : "Vypnout záchranný klíč",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.",
diff --git a/apps/encryption/l10n/cs_CZ.json b/apps/encryption/l10n/cs_CZ.json
index bea25e846c1..6610d7825d6 100644
--- a/apps/encryption/l10n/cs_CZ.json
+++ b/apps/encryption/l10n/cs_CZ.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.",
"Enable recovery key" : "Povolit záchranný klíč",
"Disable recovery key" : "Vypnout záchranný klíč",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.",
diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js
index 233c3b7ae68..c1d13396b8a 100644
--- a/apps/encryption/l10n/da.js
+++ b/apps/encryption/l10n/da.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
"Recovery key password" : "Gendannelsesnøgle kodeord",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
"Change Password" : "Skift Kodeord",
diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json
index a3c69c46a09..0e66abbd862 100644
--- a/apps/encryption/l10n/da.json
+++ b/apps/encryption/l10n/da.json
@@ -19,6 +19,7 @@
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
"Recovery key password" : "Gendannelsesnøgle kodeord",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
"Change Password" : "Skift Kodeord",
diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js
index 5dc4453fd74..d8642129aa9 100644
--- a/apps/encryption/l10n/de.js
+++ b/apps/encryption/l10n/de.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
"Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
"Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json
index abccb4016d1..cb0fc8c80d1 100644
--- a/apps/encryption/l10n/de.json
+++ b/apps/encryption/l10n/de.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
"Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
"Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index 9b8e571518a..8acbe831ced 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -23,9 +23,11 @@ OC.L10N.register(
"Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.",
"Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
"Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungschlüsselpasswort",
"Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern",
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index aee9e551163..8b4e6e405a2 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -21,9 +21,11 @@
"Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.",
"Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
"Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungschlüsselpasswort",
"Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern",
diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js
index ec6491dc055..a1530cfb5ca 100644
--- a/apps/encryption/l10n/el.js
+++ b/apps/encryption/l10n/el.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.",
"Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης",
"Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.",
diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json
index a94eac410da..9963f6c82a0 100644
--- a/apps/encryption/l10n/el.json
+++ b/apps/encryption/l10n/el.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.",
"Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης",
"Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.",
diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js
index 678c62f982d..788d7789c38 100644
--- a/apps/encryption/l10n/en_GB.js
+++ b/apps/encryption/l10n/en_GB.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Private key password updated successfully.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.",
"Recovery key password" : "Recovery key password",
"Change recovery key password:" : "Change recovery key password:",
"Change Password" : "Change Password",
diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json
index 6132868f396..aff6305fa4c 100644
--- a/apps/encryption/l10n/en_GB.json
+++ b/apps/encryption/l10n/en_GB.json
@@ -19,6 +19,7 @@
"Private key password successfully updated." : "Private key password updated successfully.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.",
"Recovery key password" : "Recovery key password",
"Change recovery key password:" : "Change recovery key password:",
"Change Password" : "Change Password",
diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js
index dd49810f03a..6d6500ac96d 100644
--- a/apps/encryption/l10n/es.js
+++ b/apps/encryption/l10n/es.js
@@ -16,21 +16,24 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Recovery Key disabled" : "Desactivada la clave de recuperación",
"Recovery Key enabled" : "Recuperación de clave habilitada",
- "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
+ "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con su administrador",
"Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
"The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.",
"The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.",
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente sea un archivo compartido. Consulte con el propietario del mismo y que lo vuelva a compartir con usted.",
"Enable recovery key" : "Activa la clave de recuperación",
"Disable recovery key" : "Desactiva la clave de recuperación",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clave de recuperación es una clave de cifrado extra que se usa para cifrar ficheros. Permite la recuperación de los ficheros de un usuario si él o ella olvida su contraseña.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Repeat recovery key password" : "Repita la contraseña de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
"Old recovery key password" : "Antigua contraseña de recuperación",
"New recovery key password" : "Nueva contraseña de recuperación",
- "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.",
+ "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación",
"Change Password" : "Cambiar contraseña",
"ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud",
"Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.",
diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json
index 54811d078c9..29093ab4a59 100644
--- a/apps/encryption/l10n/es.json
+++ b/apps/encryption/l10n/es.json
@@ -14,21 +14,24 @@
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Recovery Key disabled" : "Desactivada la clave de recuperación",
"Recovery Key enabled" : "Recuperación de clave habilitada",
- "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
+ "Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con su administrador",
"Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
"The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.",
"The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.",
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente sea un archivo compartido. Consulte con el propietario del mismo y que lo vuelva a compartir con usted.",
"Enable recovery key" : "Activa la clave de recuperación",
"Disable recovery key" : "Desactiva la clave de recuperación",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clave de recuperación es una clave de cifrado extra que se usa para cifrar ficheros. Permite la recuperación de los ficheros de un usuario si él o ella olvida su contraseña.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Repeat recovery key password" : "Repita la contraseña de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
"Old recovery key password" : "Antigua contraseña de recuperación",
"New recovery key password" : "Nueva contraseña de recuperación",
- "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.",
+ "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación",
"Change Password" : "Cambiar contraseña",
"ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud",
"Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.",
diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js
index 4b47a49e629..e2fed7c3d38 100644
--- a/apps/encryption/l10n/es_AR.js
+++ b/apps/encryption/l10n/es_AR.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.",
"Recovery key password" : "Contraseña de recuperación de clave",
"Change recovery key password:" : "Cambiar contraseña para recuperar la clave:",
"Change Password" : "Cambiar contraseña",
diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json
index 9c5d2519333..b938c1d6e38 100644
--- a/apps/encryption/l10n/es_AR.json
+++ b/apps/encryption/l10n/es_AR.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.",
"Recovery key password" : "Contraseña de recuperación de clave",
"Change recovery key password:" : "Cambiar contraseña para recuperar la clave:",
"Change Password" : "Cambiar contraseña",
diff --git a/apps/encryption/l10n/es_MX.js b/apps/encryption/l10n/es_MX.js
index 64bfc291f82..12836faa54d 100644
--- a/apps/encryption/l10n/es_MX.js
+++ b/apps/encryption/l10n/es_MX.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
"Change Password" : "Cambiar contraseña",
diff --git a/apps/encryption/l10n/es_MX.json b/apps/encryption/l10n/es_MX.json
index 9115513d7b1..f8332799f15 100644
--- a/apps/encryption/l10n/es_MX.json
+++ b/apps/encryption/l10n/es_MX.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
"Recovery key password" : "Contraseña de clave de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
"Change Password" : "Cambiar contraseña",
diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js
index 6e2684058fe..dfd1cdfcb69 100644
--- a/apps/encryption/l10n/et_EE.js
+++ b/apps/encryption/l10n/et_EE.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.",
"Recovery key password" : "Taastevõtme parool",
"Change recovery key password:" : "Muuda taastevõtme parooli:",
"Change Password" : "Muuda parooli",
diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json
index 66839779f67..e5a4bd72482 100644
--- a/apps/encryption/l10n/et_EE.json
+++ b/apps/encryption/l10n/et_EE.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.",
"Recovery key password" : "Taastevõtme parool",
"Change recovery key password:" : "Muuda taastevõtme parooli:",
"Change Password" : "Muuda parooli",
diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js
index 083bd125ba9..1e0cffe4662 100644
--- a/apps/encryption/l10n/eu.js
+++ b/apps/encryption/l10n/eu.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.",
"Recovery key password" : "Berreskuratze gako pasahitza",
"Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:",
"Change Password" : "Aldatu Pasahitza",
diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json
index 88639331be4..b896698f6d6 100644
--- a/apps/encryption/l10n/eu.json
+++ b/apps/encryption/l10n/eu.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.",
"Recovery key password" : "Berreskuratze gako pasahitza",
"Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:",
"Change Password" : "Aldatu Pasahitza",
diff --git a/apps/encryption/l10n/fi_FI.js b/apps/encryption/l10n/fi_FI.js
index 54b43463199..bfcfb32c178 100644
--- a/apps/encryption/l10n/fi_FI.js
+++ b/apps/encryption/l10n/fi_FI.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tiedostoa ei voi lukea, se on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto uudelleen kanssasi.",
"Enable recovery key" : "Ota palautusavain käyttöön",
"Disable recovery key" : "Poista palautusavain käytöstä",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.",
diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json
index c42f9928c6b..95e3523b9af 100644
--- a/apps/encryption/l10n/fi_FI.json
+++ b/apps/encryption/l10n/fi_FI.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tiedostoa ei voi lukea, se on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto uudelleen kanssasi.",
"Enable recovery key" : "Ota palautusavain käyttöön",
"Disable recovery key" : "Poista palautusavain käytöstä",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.",
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index 293626e95da..a505efaaf25 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -23,9 +23,10 @@ OC.L10N.register(
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.",
"Enable recovery key" : "Activer la clé de récupération",
"Disable recovery key" : "Désactiver la clé de récupération",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs s'ils oublient leur mot de passe.",
"Recovery key password" : "Mot de passe de la clef de récupération",
"Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération",
"Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index c35d5d31296..257a4cb8e17 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -21,9 +21,10 @@
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.",
"Enable recovery key" : "Activer la clé de récupération",
"Disable recovery key" : "Désactiver la clé de récupération",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs s'ils oublient leur mot de passe.",
"Recovery key password" : "Mot de passe de la clef de récupération",
"Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération",
"Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :",
diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js
index 6cc14cc80e4..d192a0bd8ba 100644
--- a/apps/encryption/l10n/gl.js
+++ b/apps/encryption/l10n/gl.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel ler o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.",
"Enable recovery key" : "Activar a chave de recuperación",
"Disable recovery key" : "Desactivar a chave de recuperación",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.",
diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json
index df89a75eecd..442688f38cd 100644
--- a/apps/encryption/l10n/gl.json
+++ b/apps/encryption/l10n/gl.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel ler o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.",
"Enable recovery key" : "Activar a chave de recuperación",
"Disable recovery key" : "Desactivar a chave de recuperación",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.",
diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js
index 40ad26f9daa..f6cf942edfb 100644
--- a/apps/encryption/l10n/hr.js
+++ b/apps/encryption/l10n/hr.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.",
"Recovery key password" : "Lozinka ključa za oporavak",
"Change recovery key password:" : "Promijenite lozinku ključa za oporavak",
"Change Password" : "Promijenite lozinku",
diff --git a/apps/encryption/l10n/hr.json b/apps/encryption/l10n/hr.json
index 71f83db1bdf..acfd057ec62 100644
--- a/apps/encryption/l10n/hr.json
+++ b/apps/encryption/l10n/hr.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.",
"Recovery key password" : "Lozinka ključa za oporavak",
"Change recovery key password:" : "Promijenite lozinku ključa za oporavak",
"Change Password" : "Promijenite lozinku",
diff --git a/apps/encryption/l10n/hu_HU.js b/apps/encryption/l10n/hu_HU.js
index be4df724ef8..15611a77d05 100644
--- a/apps/encryption/l10n/hu_HU.js
+++ b/apps/encryption/l10n/hu_HU.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!",
"Recovery key password" : "A helyreállítási kulcs jelszava",
"Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:",
"Change Password" : "Jelszó megváltoztatása",
diff --git a/apps/encryption/l10n/hu_HU.json b/apps/encryption/l10n/hu_HU.json
index 260a6ae3342..3214000e1a1 100644
--- a/apps/encryption/l10n/hu_HU.json
+++ b/apps/encryption/l10n/hu_HU.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!",
"Recovery key password" : "A helyreállítási kulcs jelszava",
"Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:",
"Change Password" : "Jelszó megváltoztatása",
diff --git a/apps/encryption/l10n/id.js b/apps/encryption/l10n/id.js
index 4feb1de4186..7117924864c 100644
--- a/apps/encryption/l10n/id.js
+++ b/apps/encryption/l10n/id.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.",
"Enable recovery key" : "Aktifkan kunci pemulihan",
"Disable recovery key" : "Nonaktifkan kunci pemulihan",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.",
diff --git a/apps/encryption/l10n/id.json b/apps/encryption/l10n/id.json
index da2bf575939..5a0466c5f2a 100644
--- a/apps/encryption/l10n/id.json
+++ b/apps/encryption/l10n/id.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.",
"Enable recovery key" : "Aktifkan kunci pemulihan",
"Disable recovery key" : "Nonaktifkan kunci pemulihan",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.",
diff --git a/apps/encryption/l10n/it.js b/apps/encryption/l10n/it.js
index 23b62b6d544..f093c6e2e50 100644
--- a/apps/encryption/l10n/it.js
+++ b/apps/encryption/l10n/it.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile leggere questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
"Enable recovery key" : "Abilita chiave di ripristino",
"Disable recovery key" : "Disabilita chiave di ripristino",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.",
diff --git a/apps/encryption/l10n/it.json b/apps/encryption/l10n/it.json
index f4a5b12ff6f..ebacb7601c5 100644
--- a/apps/encryption/l10n/it.json
+++ b/apps/encryption/l10n/it.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile leggere questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
"Enable recovery key" : "Abilita chiave di ripristino",
"Disable recovery key" : "Disabilita chiave di ripristino",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.",
diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js
index 1f2cf3cf49d..68149d82800 100644
--- a/apps/encryption/l10n/ja.js
+++ b/apps/encryption/l10n/ja.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Recovery key password" : "リカバリキーのパスワード",
"Change recovery key password:" : "リカバリキーのパスワードを変更:",
"Change Password" : "パスワードを変更",
diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json
index 38f8a84d8c7..1ca6304c28f 100644
--- a/apps/encryption/l10n/ja.json
+++ b/apps/encryption/l10n/ja.json
@@ -19,6 +19,7 @@
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Recovery key password" : "リカバリキーのパスワード",
"Change recovery key password:" : "リカバリキーのパスワードを変更:",
"Change Password" : "パスワードを変更",
diff --git a/apps/encryption/l10n/ko.js b/apps/encryption/l10n/ko.js
index b4f9049082d..9e82a7ff266 100644
--- a/apps/encryption/l10n/ko.js
+++ b/apps/encryption/l10n/ko.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.",
"Enable recovery key" : "복구 키 활성화",
"Disable recovery key" : "복구 키 비활성화",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.",
diff --git a/apps/encryption/l10n/ko.json b/apps/encryption/l10n/ko.json
index 4cb2f35540c..5fcdae4cde3 100644
--- a/apps/encryption/l10n/ko.json
+++ b/apps/encryption/l10n/ko.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.",
"Enable recovery key" : "복구 키 활성화",
"Disable recovery key" : "복구 키 비활성화",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.",
diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js
index 2fd29ca7788..03a825d1e3a 100644
--- a/apps/encryption/l10n/lt_LT.js
+++ b/apps/encryption/l10n/lt_LT.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
"Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:",
"Change Password" : "Pakeisti slaptažodį",
diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json
index 3e97937d60d..fcfee0f3e5e 100644
--- a/apps/encryption/l10n/lt_LT.json
+++ b/apps/encryption/l10n/lt_LT.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
"Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:",
"Change Password" : "Pakeisti slaptažodį",
diff --git a/apps/encryption/l10n/nb_NO.js b/apps/encryption/l10n/nb_NO.js
index 205f9713583..8f5a049679f 100644
--- a/apps/encryption/l10n/nb_NO.js
+++ b/apps/encryption/l10n/nb_NO.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
"Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:",
"Change Password" : "Endre passord",
diff --git a/apps/encryption/l10n/nb_NO.json b/apps/encryption/l10n/nb_NO.json
index 8f0a09d56b5..8f9816fe95b 100644
--- a/apps/encryption/l10n/nb_NO.json
+++ b/apps/encryption/l10n/nb_NO.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
"Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:",
"Change Password" : "Endre passord",
diff --git a/apps/encryption/l10n/nl.js b/apps/encryption/l10n/nl.js
index d455039cff0..ff0fb844477 100644
--- a/apps/encryption/l10n/nl.js
+++ b/apps/encryption/l10n/nl.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet lezen, waarschijnlijk is het een gedeeld bestand. Vraag de eigenaar om het bestand opnieuw met u te delen.",
"Enable recovery key" : "Activeer herstelsleutel",
"Disable recovery key" : "Deactiveer herstelsleutel",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.",
diff --git a/apps/encryption/l10n/nl.json b/apps/encryption/l10n/nl.json
index 6172a9fa3c8..5fe11c28e3e 100644
--- a/apps/encryption/l10n/nl.json
+++ b/apps/encryption/l10n/nl.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet lezen, waarschijnlijk is het een gedeeld bestand. Vraag de eigenaar om het bestand opnieuw met u te delen.",
"Enable recovery key" : "Activeer herstelsleutel",
"Disable recovery key" : "Deactiveer herstelsleutel",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.",
diff --git a/apps/encryption/l10n/pl.js b/apps/encryption/l10n/pl.js
index dd8ecd2081b..016671e88b7 100644
--- a/apps/encryption/l10n/pl.js
+++ b/apps/encryption/l10n/pl.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.",
"Recovery key password" : "Hasło klucza odzyskiwania",
"Change recovery key password:" : "Zmień hasło klucza odzyskiwania",
"Change Password" : "Zmień hasło",
diff --git a/apps/encryption/l10n/pl.json b/apps/encryption/l10n/pl.json
index 8e40fe41200..3b6e4a18e49 100644
--- a/apps/encryption/l10n/pl.json
+++ b/apps/encryption/l10n/pl.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.",
"Recovery key password" : "Hasło klucza odzyskiwania",
"Change recovery key password:" : "Zmień hasło klucza odzyskiwania",
"Change Password" : "Zmień hasło",
diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js
index 4d25a18c137..c1584ed2335 100644
--- a/apps/encryption/l10n/pt_BR.js
+++ b/apps/encryption/l10n/pt_BR.js
@@ -23,6 +23,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Por favor peça ao dono do arquivo para compartilha-lo com você.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo, provavelmente este é um arquivo compartilhado. Por favor, pergunte o dono do arquivo para recompartilhar o arquivo com você.",
"Enable recovery key" : "Habilitar recuperação de chave",
"Disable recovery key" : "Dasabilitar chave de recuperação",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.",
diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json
index 1c7b13e2e7d..d3f35f35870 100644
--- a/apps/encryption/l10n/pt_BR.json
+++ b/apps/encryption/l10n/pt_BR.json
@@ -21,6 +21,8 @@
"Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Por favor peça ao dono do arquivo para compartilha-lo com você.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo, provavelmente este é um arquivo compartilhado. Por favor, pergunte o dono do arquivo para recompartilhar o arquivo com você.",
"Enable recovery key" : "Habilitar recuperação de chave",
"Disable recovery key" : "Dasabilitar chave de recuperação",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.",
diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js
index d3055cd4a40..9664ee6f804 100644
--- a/apps/encryption/l10n/pt_PT.js
+++ b/apps/encryption/l10n/pt_PT.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.",
"Recovery key password" : "Senha da chave de recuperação",
"Change recovery key password:" : "Alterar a senha da chave de recuperação:",
"Change Password" : "Alterar a Senha",
diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json
index 57baaa64ff1..f3440482942 100644
--- a/apps/encryption/l10n/pt_PT.json
+++ b/apps/encryption/l10n/pt_PT.json
@@ -19,6 +19,7 @@
"Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.",
"Recovery key password" : "Senha da chave de recuperação",
"Change recovery key password:" : "Alterar a senha da chave de recuperação:",
"Change Password" : "Alterar a Senha",
diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js
index 03af392d19e..ec1ace0b4f0 100644
--- a/apps/encryption/l10n/ru.js
+++ b/apps/encryption/l10n/ru.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.",
"Enable recovery key" : "Включить ключ восстановления",
"Disable recovery key" : "Отключить ключ восстановления",
"Recovery key password" : "Пароль ключа восстановления",
diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json
index 2e2bcfd0513..bde2b4c2f01 100644
--- a/apps/encryption/l10n/ru.json
+++ b/apps/encryption/l10n/ru.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.",
"Enable recovery key" : "Включить ключ восстановления",
"Disable recovery key" : "Отключить ключ восстановления",
"Recovery key password" : "Пароль ключа восстановления",
diff --git a/apps/encryption/l10n/sk_SK.js b/apps/encryption/l10n/sk_SK.js
index ff9f5df4b15..727903f5679 100644
--- a/apps/encryption/l10n/sk_SK.js
+++ b/apps/encryption/l10n/sk_SK.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.",
"Recovery key password" : "Heslo obnovovacieho kľúča",
"Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:",
"Change Password" : "Zmeniť heslo",
diff --git a/apps/encryption/l10n/sk_SK.json b/apps/encryption/l10n/sk_SK.json
index 1dd03e0f9ea..ced78b0931f 100644
--- a/apps/encryption/l10n/sk_SK.json
+++ b/apps/encryption/l10n/sk_SK.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.",
"Recovery key password" : "Heslo obnovovacieho kľúča",
"Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:",
"Change Password" : "Zmeniť heslo",
diff --git a/apps/encryption/l10n/sl.js b/apps/encryption/l10n/sl.js
index fe9f775fbef..ef695af626d 100644
--- a/apps/encryption/l10n/sl.js
+++ b/apps/encryption/l10n/sl.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
"Recovery key password" : "Ključ za obnovitev gesla",
"Change recovery key password:" : "Spremeni ključ za obnovitev gesla:",
"Change Password" : "Spremeni geslo",
diff --git a/apps/encryption/l10n/sl.json b/apps/encryption/l10n/sl.json
index f650196eac1..7e50e87f41b 100644
--- a/apps/encryption/l10n/sl.json
+++ b/apps/encryption/l10n/sl.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
"Recovery key password" : "Ključ za obnovitev gesla",
"Change recovery key password:" : "Spremeni ključ za obnovitev gesla:",
"Change Password" : "Spremeni geslo",
diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js
index b1e0feaa343..fac26d7c953 100644
--- a/apps/encryption/l10n/sr.js
+++ b/apps/encryption/l10n/sr.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.",
"Enable recovery key" : "Омогући кључ за опоравак",
"Disable recovery key" : "Онемогући кључ за опоравак",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.",
diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json
index f3139af14af..fdf55cf4e00 100644
--- a/apps/encryption/l10n/sr.json
+++ b/apps/encryption/l10n/sr.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.",
"Enable recovery key" : "Омогући кључ за опоравак",
"Disable recovery key" : "Онемогући кључ за опоравак",
"The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.",
diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js
index 9ffea2b937f..d68e3274ad6 100644
--- a/apps/encryption/l10n/sv.js
+++ b/apps/encryption/l10n/sv.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.",
"Recovery key password" : "Lösenord för återställningsnyckel",
"Change recovery key password:" : "Ändra lösenord för återställningsnyckel:",
"Change Password" : "Byt lösenord",
diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json
index e977107ba21..2ab5025fb25 100644
--- a/apps/encryption/l10n/sv.json
+++ b/apps/encryption/l10n/sv.json
@@ -17,6 +17,7 @@
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.",
"Recovery key password" : "Lösenord för återställningsnyckel",
"Change recovery key password:" : "Ändra lösenord för återställningsnyckel:",
"Change Password" : "Byt lösenord",
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index f462437912e..0d4327b2e0b 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
"Enable recovery key" : "Kurtarma anahtarını aktif et",
"Disable recovery key" : "Kurtarma anahtarını kapat",
"Recovery key password" : "Kurtarma anahtarı parolası",
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index 1f3dea88d57..3989ebaa515 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -21,6 +21,7 @@
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
"Enable recovery key" : "Kurtarma anahtarını aktif et",
"Disable recovery key" : "Kurtarma anahtarını kapat",
"Recovery key password" : "Kurtarma anahtarı parolası",
diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js
index de044e5a506..357b2e23c76 100644
--- a/apps/encryption/l10n/uk.js
+++ b/apps/encryption/l10n/uk.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Private key password successfully updated." : "Пароль секретного ключа оновлено.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.",
"Recovery key password" : "Пароль ключа відновлення",
"Change recovery key password:" : "Змінити пароль ключа відновлення:",
"Change Password" : "Змінити Пароль",
diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json
index f0ac6b8789a..52187eb47f1 100644
--- a/apps/encryption/l10n/uk.json
+++ b/apps/encryption/l10n/uk.json
@@ -19,6 +19,7 @@
"Private key password successfully updated." : "Пароль секретного ключа оновлено.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.",
"Recovery key password" : "Пароль ключа відновлення",
"Change recovery key password:" : "Змінити пароль ключа відновлення:",
"Change Password" : "Змінити Пароль",
diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js
index 05cfcca307c..e38e6f03227 100644
--- a/apps/encryption/l10n/zh_CN.js
+++ b/apps/encryption/l10n/zh_CN.js
@@ -17,6 +17,7 @@ OC.L10N.register(
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。",
"Recovery key password" : "恢复密钥密码",
"Change recovery key password:" : "更改恢复密钥密码",
"Change Password" : "修改密码",
diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json
index 4106228b0d5..0a1c7b5b899 100644
--- a/apps/encryption/l10n/zh_CN.json
+++ b/apps/encryption/l10n/zh_CN.json
@@ -15,6 +15,7 @@
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。",
"Recovery key password" : "恢复密钥密码",
"Change recovery key password:" : "更改恢复密钥密码",
"Change Password" : "修改密码",
diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js
index 946dc001507..01b35d4661a 100644
--- a/apps/encryption/l10n/zh_TW.js
+++ b/apps/encryption/l10n/zh_TW.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Private key password successfully updated." : "私人金鑰密碼已成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。",
"Recovery key password" : "還原金鑰密碼",
"Change recovery key password:" : "變更還原金鑰密碼:",
"Change Password" : "變更密碼",
diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json
index 67878ea4bf4..a1617eec761 100644
--- a/apps/encryption/l10n/zh_TW.json
+++ b/apps/encryption/l10n/zh_TW.json
@@ -8,6 +8,7 @@
"Private key password successfully updated." : "私人金鑰密碼已成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。",
"Recovery key password" : "還原金鑰密碼",
"Change recovery key password:" : "變更還原金鑰密碼:",
"Change Password" : "變更密碼",
diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php
index df3f9a0997e..f527955b496 100644
--- a/apps/encryption/lib/crypto/encryption.php
+++ b/apps/encryption/lib/crypto/encryption.php
@@ -36,7 +36,7 @@ use OCP\ILogger;
class Encryption implements IEncryptionModule {
const ID = 'OC_DEFAULT_MODULE';
- const DISPLAY_NAME = 'ownCloud Default Encryption';
+ const DISPLAY_NAME = 'Default encryption module';
/**
* @var Crypt
@@ -304,7 +304,7 @@ class Encryption implements IEncryptionModule {
*/
public function update($path, $uid, array $accessList) {
$fileKey = $this->keyManager->getFileKey($path, $uid);
-
+
if (!empty($fileKey)) {
$publicKeys = array();
diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php
index 072265d86d6..8fc22a8aa66 100644
--- a/apps/files/controller/apicontroller.php
+++ b/apps/files/controller/apicontroller.php
@@ -31,7 +31,6 @@ use OCP\AppFramework\Controller;
use OCP\IRequest;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\DataDisplayResponse;
-use OCP\AppFramework\Http\DownloadResponse;
use OCA\Files\Service\TagService;
use OCP\IPreview;
diff --git a/apps/files/index.php b/apps/files/index.php
index ea0fd0ce2fe..c7a45e54854 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -29,7 +29,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
-use OCA\Files\Appinfo\Application;
// Check if we are a user
OCP\User::checkLoggedIn();
diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js
index be385f21f50..83cd556c89a 100644
--- a/apps/files/js/navigation.js
+++ b/apps/files/js/navigation.js
@@ -124,7 +124,7 @@
var $target = $(ev.target);
var itemId = $target.closest('li').attr('data-id');
this.setActiveItem(itemId);
- return false;
+ ev.preventDefault();
}
};
diff --git a/apps/files/tests/controller/apicontrollertest.php b/apps/files/tests/controller/apicontrollertest.php
index bbab711310c..0ec38e0e2e7 100644
--- a/apps/files/tests/controller/apicontrollertest.php
+++ b/apps/files/tests/controller/apicontrollertest.php
@@ -25,7 +25,6 @@ namespace OCA\Files\Controller;
use OC\Files\FileInfo;
use OCP\AppFramework\Http;
-use OC\Preview;
use OCP\Files\NotFoundException;
use OCP\Files\StorageNotAvailableException;
use Test\TestCase;
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 79bd0bb0c47..c5934a4f609 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -144,7 +144,7 @@ OCA.Sharing.PublicApp = {
path: path,
files: filename
};
- return OC.generateUrl('/s/' + token + '/download', params);
+ return OC.generateUrl('/s/' + token + '/download') + '?' + OC.buildQueryString(params);
};
this.fileList.getAjaxUrl = function (action, params) {
@@ -277,6 +277,11 @@ OCA.Sharing.PublicApp = {
};
$(document).ready(function () {
+ // FIXME: replace with OC.Plugins.register()
+ if (window.TESTING) {
+ return;
+ }
+
var App = OCA.Sharing.PublicApp;
// defer app init, to give a chance to plugins to register file actions
_.defer(function () {
diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php
index 182342c22e5..da6667e2c8b 100644
--- a/apps/files_sharing/lib/controllers/sharecontroller.php
+++ b/apps/files_sharing/lib/controllers/sharecontroller.php
@@ -46,7 +46,6 @@ use OCA\Files_Sharing\Helper;
use OCP\User;
use OCP\Util;
use OCA\Files_Sharing\Activity;
-use OCP\AppFramework\Http\DataResponse;
/**
* Class ShareController
diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php
index 7c1dc5aeaf5..39e182feb60 100644
--- a/apps/files_sharing/lib/external/storage.php
+++ b/apps/files_sharing/lib/external/storage.php
@@ -25,7 +25,6 @@
namespace OCA\Files_Sharing\External;
-use OC\Files\Filesystem;
use OC\Files\Storage\DAV;
use OC\ForbiddenException;
use OCA\Files_Sharing\ISharedStorage;
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 10a37c7dae9..ee86787c181 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -29,11 +29,8 @@
namespace OC\Files\Storage;
-use OC\Files\Cache\ChangePropagator;
use OC\Files\Filesystem;
use OCA\Files_Sharing\ISharedStorage;
-use OCA\Files_Sharing\Propagator;
-use OCA\Files_Sharing\SharedMount;
/**
* Convert target path to source path and pass the function call to the correct storage provider
@@ -70,7 +67,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
* Get the source file path, permissions, and owner for a shared file
*
* @param string $target Shared target file path
- * @return Returns array with the keys path, permissions, and owner or false if not found
+ * @return array Returns array with the keys path, permissions, and owner or false if not found
*/
public function getFile($target) {
if (!isset($this->files[$target])) {
diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php
index 3be464c64f0..b70274e6bc0 100644
--- a/apps/files_sharing/publicwebdav.php
+++ b/apps/files_sharing/publicwebdav.php
@@ -24,10 +24,6 @@
*
*/
-if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) {
- return false;
-}
-
// load needed apps
$RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging');
@@ -48,13 +44,19 @@ $server->setBaseUri($baseuri);
// Load plugins
$defaults = new OC_Defaults();
$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName()));
-$server->addPlugin(new \Sabre\DAV\Browser\Plugin(false)); // Show something in the Browser, but no upload
+// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to /
+$server->addPlugin(new \OC\Connector\Sabre\DummyGetResponsePlugin());
$server->addPlugin(new \OC\Connector\Sabre\FilesPlugin($objectTree));
$server->addPlugin(new \OC\Connector\Sabre\MaintenancePlugin());
$server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('webdav', \OC::$server->getLogger()));
// wait with registering these until auth is handled and the filesystem is setup
$server->on('beforeMethod', function () use ($server, $objectTree, $authBackend) {
+ if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) {
+ // this is what is thrown when trying to access a non-existing share
+ throw new \Sabre\DAV\Exception\NotAuthenticated();
+ }
+
$share = $authBackend->getShare();
$rootShare = \OCP\Share::resolveReShare($share);
$owner = $rootShare['uid_owner'];
diff --git a/apps/files_sharing/tests/controller/sharecontroller.php b/apps/files_sharing/tests/controller/sharecontroller.php
index 64ee5b8ce51..eaa7ce7bfde 100644
--- a/apps/files_sharing/tests/controller/sharecontroller.php
+++ b/apps/files_sharing/tests/controller/sharecontroller.php
@@ -29,7 +29,6 @@ use OC\Files\Filesystem;
use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\Http\NotFoundResponse;
use OCP\AppFramework\IAppContainer;
-use OCP\Files;
use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Security\ISecureRandom;
@@ -78,10 +77,7 @@ class ShareControllerTest extends \Test\TestCase {
\OC_User::createUser($this->user, $this->user);
\OC_Util::tearDownFS();
- \OC_User::setUserId('');
- Filesystem::tearDown();
- \OC_User::setUserId($this->user);
- \OC_Util::setupFS($this->user);
+ $this->loginAsUser($this->user);
// Create a dummy shared file
$view = new View('/'. $this->user . '/files');
diff --git a/apps/files_sharing/tests/js/publicAppSpec.js b/apps/files_sharing/tests/js/publicAppSpec.js
new file mode 100644
index 00000000000..d496b78acfa
--- /dev/null
+++ b/apps/files_sharing/tests/js/publicAppSpec.js
@@ -0,0 +1,107 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2015 Vincent Petry <pvince81@owncloud.com>
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library 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 library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+describe('OCA.Sharing.PublicApp tests', function() {
+ var App = OCA.Sharing.PublicApp;
+ var $preview;
+ var fileListIn;
+ var fileListOut;
+
+ beforeEach(function() {
+ $preview = $('<div id="preview"></div>');
+ $('#testArea').append($preview);
+ $preview.append(
+ '<div id="mimetype"></div>' +
+ '<div id="mimetypeIcon"></div>' +
+ '<input type="hidden" id="sharingToken" value="sh4tok"></input>'
+ );
+ });
+
+ describe('File list', function() {
+ // TODO: this should be moved to a separate file once the PublicFileList is extracted from public.js
+ beforeEach(function() {
+ $preview.append(
+ '<div id="app-content-files">' +
+ // init horrible parameters
+ '<input type="hidden" id="dir" value="/subdir"/>' +
+ '<input type="hidden" id="permissions" value="31"/>' +
+ // dummy controls
+ '<div id="controls">' +
+ ' <div class="actions creatable"></div>' +
+ ' <div class="notCreatable"></div>' +
+ '</div>' +
+ // uploader
+ '<input type="file" id="file_upload_start" name="files[]" multiple="multiple">' +
+ // dummy table
+ // TODO: at some point this will be rendered by the fileList class itself!
+ '<table id="filestable">' +
+ '<thead><tr>' +
+ '<th id="headerName" class="hidden column-name">' +
+ '<input type="checkbox" id="select_all_files" class="select-all">' +
+ '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
+ '<span class="selectedActions hidden">' +
+ '<a href class="download">Download</a>' +
+ '</th>' +
+ '<th class="hidden column-size"><a class="columntitle" data-sort="size"><span class="sort-indicator"></span></a></th>' +
+ '<th class="hidden column-mtime"><a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a></th>' +
+ '</tr></thead>' +
+ '<tbody id="fileList"></tbody>' +
+ '<tfoot></tfoot>' +
+ '</table>' +
+ // TODO: move to handlebars template
+ '<div id="emptycontent"><h2>Empty content message</h2><p class="uploadmessage">Upload message</p></div>' +
+ '<div class="nofilterresults hidden"></div>' +
+ '</div>'
+ );
+
+ App.initialize($('#preview'));
+ });
+ afterEach(function() {
+ App._initialized = false;
+ });
+
+ describe('Download Url', function() {
+ var fileList;
+
+ beforeEach(function() {
+ fileList = App.fileList;
+ });
+
+ it('returns correct download URL for single files', function() {
+ expect(fileList.getDownloadUrl('some file.txt'))
+ .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=some%20file.txt');
+ expect(fileList.getDownloadUrl('some file.txt', '/anotherpath/abc'))
+ .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fanotherpath%2Fabc&files=some%20file.txt');
+ fileList.changeDirectory('/');
+ expect(fileList.getDownloadUrl('some file.txt'))
+ .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2F&files=some%20file.txt');
+ });
+ it('returns correct download URL for multiple files', function() {
+ expect(fileList.getDownloadUrl(['a b c.txt', 'd e f.txt']))
+ .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=%5B%22a%20b%20c.txt%22%2C%22d%20e%20f.txt%22%5D');
+ });
+ it('returns the correct ajax URL', function() {
+ expect(fileList.getAjaxUrl('test', {a:1, b:'x y'}))
+ .toEqual(OC.webroot + '/index.php/apps/files_sharing/ajax/test.php?a=1&b=x%20y&t=sh4tok');
+ });
+ });
+ });
+});
diff --git a/apps/files_sharing/tests/testcase.php b/apps/files_sharing/tests/testcase.php
index b9e9f077201..7533b13f79d 100644
--- a/apps/files_sharing/tests/testcase.php
+++ b/apps/files_sharing/tests/testcase.php
@@ -153,6 +153,7 @@ abstract class TestCase extends \Test\TestCase {
\OC::$server->getUserSession()->setUser(null);
\OC\Files\Filesystem::tearDown();
\OC::$server->getUserSession()->login($user, $password);
+ \OC::$server->getUserFolder($user);
\OC_Util::setupFS($user);
}
diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php
index e0fdc43830e..f99bc91dd26 100644
--- a/apps/files_trashbin/tests/storage.php
+++ b/apps/files_trashbin/tests/storage.php
@@ -23,9 +23,7 @@
namespace OCA\Files_trashbin\Tests\Storage;
-use OC\Files\Storage\Home;
use OC\Files\Storage\Temporary;
-use OC\Files\Mount\MountPoint;
use OC\Files\Filesystem;
class Storage extends \Test\TestCase {
diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php
index 85c47b527b7..0c37af24de5 100644
--- a/apps/files_trashbin/tests/trashbin.php
+++ b/apps/files_trashbin/tests/trashbin.php
@@ -646,6 +646,7 @@ class Test_Trashbin extends \Test\TestCase {
\OC\Files\Filesystem::tearDown();
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
+ \OC::$server->getUserFolder($user);
}
}
diff --git a/apps/files_versions/command/expire.php b/apps/files_versions/command/expire.php
index d6523746525..6cec9f4fac3 100644
--- a/apps/files_versions/command/expire.php
+++ b/apps/files_versions/command/expire.php
@@ -11,7 +11,6 @@ namespace OCA\Files_Versions\Command;
use OC\Command\FileAccess;
use OCA\Files_Versions\Storage;
use OCP\Command\ICommand;
-use OCP\IUser;
class Expire implements ICommand {
use FileAccess;
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
index 97afcf715cb..685bf48d652 100644
--- a/apps/files_versions/tests/versions.php
+++ b/apps/files_versions/tests/versions.php
@@ -753,6 +753,7 @@ class Test_Files_Versioning extends \Test\TestCase {
\OC\Files\Filesystem::tearDown();
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
+ \OC::$server->getUserFolder($user);
}
}
diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php
index 43cf22b071b..b709e09726d 100644
--- a/apps/provisioning_api/lib/users.php
+++ b/apps/provisioning_api/lib/users.php
@@ -27,6 +27,7 @@ use \OC_SubAdmin;
use \OC_User;
use \OC_Group;
use \OC_Helper;
+use OCP\Files\NotFoundException;
class Users {
@@ -92,16 +93,8 @@ class Users {
$config = \OC::$server->getConfig();
// Find the data
- $data = array();
- \OC_Util::tearDownFS();
- \OC_Util::setupFS($userId);
- $storage = OC_Helper::getStorageInfo('/');
- $data['quota'] = array(
- 'free' => $storage['free'],
- 'used' => $storage['used'],
- 'total' => $storage['total'],
- 'relative' => $storage['relative'],
- );
+ $data = [];
+ $data = self::fillStorageInfo($userId, $data);
$data['enabled'] = $config->getUserValue($userId, 'core', 'enabled', 'true');
$data['email'] = $config->getUserValue($userId, 'settings', 'email');
$data['displayname'] = OC_User::getDisplayName($parameters['userid']);
@@ -350,4 +343,27 @@ class Users {
return new OC_OCS_Result($groups);
}
}
+
+ /**
+ * @param $userId
+ * @param $data
+ * @return mixed
+ * @throws \OCP\Files\NotFoundException
+ */
+ private static function fillStorageInfo($userId, $data) {
+ try {
+ \OC_Util::tearDownFS();
+ \OC_Util::setupFS($userId);
+ $storage = OC_Helper::getStorageInfo('/');
+ $data['quota'] = [
+ 'free' => $storage['free'],
+ 'used' => $storage['used'],
+ 'total' => $storage['total'],
+ 'relative' => $storage['relative'],
+ ];
+ } catch (NotFoundException $ex) {
+ $data['quota'] = [];
+ }
+ return $data;
+ }
}
diff --git a/apps/provisioning_api/tests/appstest.php b/apps/provisioning_api/tests/appstest.php
index 140dd287a0e..94bff8bbf5b 100644
--- a/apps/provisioning_api/tests/appstest.php
+++ b/apps/provisioning_api/tests/appstest.php
@@ -44,7 +44,7 @@ class AppsTest extends TestCase {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Apps::getApps(array());
diff --git a/apps/provisioning_api/tests/groupstest.php b/apps/provisioning_api/tests/groupstest.php
index 94bde52c392..cb677d9b512 100644
--- a/apps/provisioning_api/tests/groupstest.php
+++ b/apps/provisioning_api/tests/groupstest.php
@@ -27,7 +27,7 @@ class GroupsTest extends TestCase {
public function testGetGroupAsUser() {
$users = $this->generateUsers(2);
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
@@ -46,7 +46,7 @@ class GroupsTest extends TestCase {
public function testGetGroupAsSubadmin() {
$users = $this->generateUsers(2);
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
@@ -75,7 +75,7 @@ class GroupsTest extends TestCase {
public function testGetGroupAsIrrelevantSubadmin() {
$users = $this->generateUsers(2);
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
@@ -99,7 +99,7 @@ class GroupsTest extends TestCase {
public function testGetGroupAsAdmin() {
$users = $this->generateUsers(2);
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
@@ -120,7 +120,7 @@ class GroupsTest extends TestCase {
public function testGetSubAdminsOfGroup() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -135,7 +135,7 @@ class GroupsTest extends TestCase {
\OC_Group::deleteGroup($group1);
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$result = \OCA\provisioning_api\Groups::getSubAdminsOfGroup(array(
'groupid' => $this->getUniqueID(),
diff --git a/apps/provisioning_api/tests/userstest.php b/apps/provisioning_api/tests/userstest.php
index c6a6133b7d2..0ba76355d58 100644
--- a/apps/provisioning_api/tests/userstest.php
+++ b/apps/provisioning_api/tests/userstest.php
@@ -81,7 +81,7 @@ class UsersTest extends TestCase {
public function testGetUserOnSelf() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$params['userid'] = $user;
$result = \OCA\provisioning_API\Users::getUser($params);
$this->assertInstanceOf('OC_OCS_Result', $result);
@@ -92,7 +92,7 @@ class UsersTest extends TestCase {
public function testGetUserOnNonExistingUser() {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$params = array();
$params['userid'] = $this->getUniqueID();
while(\OC_User::userExists($params['userid'])) {
@@ -108,7 +108,7 @@ class UsersTest extends TestCase {
public function testGetUserOnOtherUser() {
$users = $this->generateUsers(2);
$params['userid'] = $users[0];
- \OC_User::setUserId($users[1]);
+ self::loginAsUser($users[1]);
$result = \OCA\provisioning_API\Users::getUser($params);
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertFalse($result->succeeded());
@@ -116,8 +116,10 @@ class UsersTest extends TestCase {
// Now as as admin
$users = $this->generateUsers(2);
$params['userid'] = $users[0];
+ // login to generate home
+ self::loginAsUser($users[0]);
\OC_Group::addToGroup($users[1], 'admin');
- \OC_User::setUserId($users[1]);
+ self::loginAsUser($users[1]);
$result = \OCA\provisioning_API\Users::getUser($params);
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertTrue($result->succeeded());
@@ -129,7 +131,7 @@ class UsersTest extends TestCase {
// Test editing own name
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::editUser(
array(
'userid' => $user,
@@ -150,7 +152,7 @@ class UsersTest extends TestCase {
// Test admin editing users name
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::editUser(
array(
@@ -171,7 +173,7 @@ class UsersTest extends TestCase {
// Test editing other users name
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::editUser(
array(
@@ -195,7 +197,7 @@ class UsersTest extends TestCase {
public function testEditOwnQuota($expected, $quota) {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::editUser(
[
'userid' => $user,
@@ -222,7 +224,7 @@ class UsersTest extends TestCase {
public function testAdminEditOwnQuota() {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::editUser(
array(
'userid' => $user,
@@ -239,7 +241,7 @@ class UsersTest extends TestCase {
public function testAdminEditOtherUserQuota() {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::editUser(
array(
@@ -256,7 +258,7 @@ class UsersTest extends TestCase {
public function testUserEditOtherUserQuota() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::editUser(
array(
@@ -274,7 +276,7 @@ class UsersTest extends TestCase {
public function testUserEditOwnEmail() {
$user = $this->generateUsers();
$email = 'test@example.com';
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::editUser(
array(
'userid' => $user,
@@ -292,7 +294,7 @@ class UsersTest extends TestCase {
public function testUserEditOtherUserEmailAsUser() {
$users = $this->generateUsers(2);
$email = 'test@example.com';
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
$result = \OCA\provisioning_API\Users::editUser(
array(
'userid' => $users[1],
@@ -309,7 +311,7 @@ class UsersTest extends TestCase {
public function testUserEditOtherUserEmailAsAdmin() {
$users = $this->generateUsers(2);
$email = 'test@example.com';
- \OC_User::setUserId($users[0]);
+ self::loginAsUser($users[0]);
\OC_Group::addToGroup($users[0], 'admin');
$result = \OCA\provisioning_API\Users::editUser(
array(
@@ -327,7 +329,7 @@ class UsersTest extends TestCase {
public function testDeleteSelf() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::deleteUser(array(
'userid' => $user,
));
@@ -337,7 +339,7 @@ class UsersTest extends TestCase {
public function testDeleteOtherAsUser() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::deleteUser(array(
'userid' => $user2,
@@ -348,7 +350,7 @@ class UsersTest extends TestCase {
public function testDeleteOtherAsSubAdmin() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
@@ -365,7 +367,7 @@ class UsersTest extends TestCase {
public function testDeleteOtherAsIrelevantSubAdmin() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$group = $this->getUniqueID();
$group2 = $this->getUniqueID();
@@ -386,7 +388,7 @@ class UsersTest extends TestCase {
public function testDeleteOtherAsAdmin() {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$user2 = $this->generateUsers();
$result = \OCA\provisioning_API\Users::deleteUser(array(
'userid' => $user2,
@@ -398,7 +400,7 @@ class UsersTest extends TestCase {
public function testDeleteSelfAsAdmin() {
$user = $this->generateUsers();
\OC_Group::addToGroup($user, 'admin');
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$result = \OCA\provisioning_API\Users::deleteUser(array(
'userid' => $user,
));
@@ -408,7 +410,7 @@ class UsersTest extends TestCase {
public function testGetUsersGroupsOnSelf() {
$user = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
\OC_Group::addToGroup($user, $group);
@@ -426,7 +428,7 @@ class UsersTest extends TestCase {
public function testGetUsersGroupOnOther() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
\OC_Group::addToGroup($user2, $group);
@@ -442,7 +444,7 @@ class UsersTest extends TestCase {
$user1 = $this->generateUsers();
\OC_Group::addToGroup($user1, 'admin');
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
\OC_Group::addToGroup($user2, $group);
@@ -460,7 +462,7 @@ class UsersTest extends TestCase {
public function testGetUsersGroupsOnOtherAsSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -484,7 +486,7 @@ class UsersTest extends TestCase {
public function testGetUsersGroupsOnOtherAsIrelevantSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -505,7 +507,7 @@ class UsersTest extends TestCase {
$user = $this->generateUsers();
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$_POST['groupid'] = $group;
$result = \OCA\provisioning_API\Users::addToGroup(array(
'userid' => $user,
@@ -522,7 +524,7 @@ class UsersTest extends TestCase {
$group = $this->getUniqueID();
\OC_Group::createGroup($group);
$user2 = $this->generateUsers();
- \OC_User::setUserId($user);
+ self::loginAsUser($user);
$_POST['groupid'] = $group;
$result = \OCA\provisioning_API\Users::addToGroup(array(
'userid' => $user2,
@@ -536,7 +538,7 @@ class UsersTest extends TestCase {
public function testAddToGroupAsSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
\OC_SubAdmin::createSubAdmin($user1, $group1);
@@ -553,7 +555,7 @@ class UsersTest extends TestCase {
public function testAddToGroupAsIrelevantSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -573,7 +575,7 @@ class UsersTest extends TestCase {
// test delete /cloud/users/{userid}/groups
public function testRemoveFromGroupAsSelf() {
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
\OC_Group::addToGroup($user1, $group1);
@@ -592,7 +594,7 @@ class UsersTest extends TestCase {
public function testRemoveFromGroupAsAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
\OC_Group::addToGroup($user2, $group1);
@@ -611,7 +613,7 @@ class UsersTest extends TestCase {
public function testRemoveFromGroupAsSubAdmin() {
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$user2 = $this->generateUsers();
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -632,7 +634,7 @@ class UsersTest extends TestCase {
public function testRemoveFromGroupAsIrelevantSubAdmin() {
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
$user2 = $this->generateUsers();
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
@@ -657,7 +659,7 @@ class UsersTest extends TestCase {
public function testCreateSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -674,7 +676,7 @@ class UsersTest extends TestCase {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$_POST['groupid'] = 'admin';
$result = \OCA\provisioning_api\Users::addSubAdmin(array(
@@ -687,7 +689,7 @@ class UsersTest extends TestCase {
$this->resetParams();
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -704,7 +706,7 @@ class UsersTest extends TestCase {
public function testRemoveSubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -721,7 +723,7 @@ class UsersTest extends TestCase {
\OC_Group::deleteGroup($group1);
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$result = \OCA\provisioning_api\Users::removeSubAdmin(array(
'userid' => $this->getUniqueID(),
@@ -737,7 +739,7 @@ class UsersTest extends TestCase {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -757,7 +759,7 @@ class UsersTest extends TestCase {
public function testGetSubAdminGroups() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
@@ -772,7 +774,7 @@ class UsersTest extends TestCase {
\OC_Group::deleteGroup($group1);
$user1 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
$result = \OCA\provisioning_api\Users::getUserSubAdminGroups(array(
@@ -786,7 +788,7 @@ class UsersTest extends TestCase {
public function testSubAdminOfGroupAlreadySubAdmin() {
$user1 = $this->generateUsers();
$user2 = $this->generateUsers();
- \OC_User::setUserId($user1);
+ self::loginAsUser($user1);
\OC_Group::addToGroup($user1, 'admin');
$group1 = $this->getUniqueID();
\OC_Group::createGroup($group1);
diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php
index 31f72a38e0b..f5fd5f23b87 100644
--- a/apps/user_ldap/ajax/testConfiguration.php
+++ b/apps/user_ldap/ajax/testConfiguration.php
@@ -34,16 +34,38 @@ $ldapWrapper = new OCA\user_ldap\lib\LDAP();
$connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, '', null);
//needs to be true, otherwise it will also fail with an irritating message
$_POST['ldap_configuration_active'] = 1;
-if($connection->setConfiguration($_POST)) {
- //Configuration is okay
- if($connection->bind()) {
- OCP\JSON::success(array('message'
+
+try {
+ if ($connection->setConfiguration($_POST)) {
+ //Configuration is okay
+ if ($connection->bind()) {
+ /*
+ * This shiny if block is an ugly hack to find out whether anonymous
+ * bind is possible on AD or not. Because AD happily and constantly
+ * replies with success to any anonymous bind request, we need to
+ * fire up a broken operation. If AD does not allow anonymous bind,
+ * it will end up with LDAP error code 1 which is turned into an
+ * exception by the LDAP wrapper. We catch this. Other cases may
+ * pass (like e.g. expected syntax error).
+ */
+ try {
+ $ldapWrapper->read($connection->getConnectionResource(), 'neverwhere', 'objectClass=*', array('dn'));
+ } catch (\Exception $e) {
+ if($e->getCode() === 1) {
+ OCP\JSON::error(array('message' => $l->t('The configuration is invalid: anonymous bind is not allowed.')));
+ exit;
+ }
+ }
+ OCP\JSON::success(array('message'
=> $l->t('The configuration is valid and the connection could be established!')));
+ } else {
+ OCP\JSON::error(array('message'
+ => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.')));
+ }
} else {
OCP\JSON::error(array('message'
- => $l->t('The configuration is valid, but the Bind failed. Please check the server settings and credentials.')));
- }
-} else {
- OCP\JSON::error(array('message'
=> $l->t('The configuration is invalid. Please have a look at the logs for further details.')));
+ }
+} catch (\Exception $e) {
+ OCP\JSON::error(array('message' => $e->getMessage()));
}
diff --git a/apps/user_ldap/command/setconfig.php b/apps/user_ldap/command/setconfig.php
index 31fb4ac9127..53de5317207 100644
--- a/apps/user_ldap/command/setconfig.php
+++ b/apps/user_ldap/command/setconfig.php
@@ -26,7 +26,6 @@ namespace OCA\user_ldap\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use \OCA\user_ldap\lib\Helper;
use \OCA\user_ldap\lib\Configuration;
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 8f56e01bf3d..4c5c01743aa 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -292,12 +292,13 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
public function getUsersInPrimaryGroup($groupDN, $search = '', $limit = -1, $offset = 0) {
try {
$filter = $this->prepareFilterForUsersInPrimaryGroup($groupDN, $search);
- return $this->access->fetchListOfUsers(
+ $users = $this->access->fetchListOfUsers(
$filter,
array($this->access->connection->ldapUserDisplayName, 'dn'),
$limit,
$offset
);
+ return $this->access->ownCloudUserNames($users);
} catch (\Exception $e) {
return array();
}
@@ -476,8 +477,9 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
return array();
}
+ $primaryUsers = $this->getUsersInPrimaryGroup($groupDN, $search, $limit, $offset);
$members = array_keys($this->_groupMembers($groupDN));
- if(!$members) {
+ if(!$members && empty($primaryUsers)) {
//in case users could not be retrieved, return empty result set
$this->access->connection->writeToCache($cacheKey, array());
return array();
@@ -514,13 +516,11 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
}
}
+ $groupUsers = array_unique(array_merge($groupUsers, $primaryUsers));
natsort($groupUsers);
$this->access->connection->writeToCache('usersInGroup-'.$gid.'-'.$search, $groupUsers);
$groupUsers = array_slice($groupUsers, $offset, $limit);
- //and get users that have the group as primary
- $primaryUsers = $this->getUsersInPrimaryGroup($groupDN, $search, $limit, $offset);
- $groupUsers = array_unique(array_merge($groupUsers, $primaryUsers));
$this->access->connection->writeToCache($cacheKey, $groupUsers);
@@ -551,16 +551,15 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
}
$members = array_keys($this->_groupMembers($groupDN));
- if(!$members) {
+ $primaryUserCount = $this->countUsersInPrimaryGroup($groupDN, '');
+ if(!$members && $primaryUserCount === 0) {
//in case users could not be retrieved, return empty result set
$this->access->connection->writeToCache($cacheKey, false);
return false;
}
if(empty($search)) {
- $primaryUsers = $this->countUsersInPrimaryGroup($groupDN, '');
- $groupUsers = count($members) + $primaryUsers;
-
+ $groupUsers = count($members) + $primaryUserCount;
$this->access->connection->writeToCache($cacheKey, $groupUsers);
return $groupUsers;
}
diff --git a/apps/user_ldap/js/wizard/view.js b/apps/user_ldap/js/wizard/view.js
index 7743c277d61..7dedfab75f0 100644
--- a/apps/user_ldap/js/wizard/view.js
+++ b/apps/user_ldap/js/wizard/view.js
@@ -168,6 +168,26 @@ OCA = OCA || {};
},
/**
+ * Base DN test results will arrive here
+ *
+ * @param {WizardTabElementary} view
+ * @param {FeaturePayload} payload
+ */
+ onDetectionTestCompleted: function(view, payload) {
+ if(payload.feature === 'TestBaseDN') {
+ if(payload.data.status === 'success') {
+ var objectsFound = parseInt(payload.data.changes.ldap_test_base, 10);
+ if(objectsFound > 0) {
+ view._updateStatusIndicator(view.STATUS_SUCCESS);
+ return;
+ }
+ }
+ view._updateStatusIndicator(view.STATUS_ERROR);
+ OC.Notification.showTemporary(t('user_ldap', 'The Base DN appears to be wrong'));
+ }
+ },
+
+ /**
* updates the status indicator based on the configuration test result
*
* @param {WizardView} [view]
@@ -176,7 +196,7 @@ OCA = OCA || {};
*/
onTestCompleted: function(view, result) {
if(result.isSuccess) {
- view._updateStatusIndicator(view.STATUS_SUCCESS);
+ view.configModel.requestWizard('ldap_test_base');
} else {
view._updateStatusIndicator(view.STATUS_ERROR);
}
@@ -272,6 +292,7 @@ OCA = OCA || {};
this.configModel.on('setRequested', this.onSetRequested, this);
this.configModel.on('setCompleted', this.onSetRequestDone, this);
this.configModel.on('configurationTested', this.onTestCompleted, this);
+ this.configModel.on('receivedLdapFeature', this.onDetectionTestCompleted, this);
},
/**
diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js
index b8ab367dfd1..7c1a550c097 100644
--- a/apps/user_ldap/js/wizard/wizardTabElementary.js
+++ b/apps/user_ldap/js/wizard/wizardTabElementary.js
@@ -17,6 +17,8 @@ OCA = OCA || {};
/** @property {number} */
_configChooserNextServerNumber: 1,
+ baseDNTestTriggered: false,
+
/**
* initializes the instance. Always call it after initialization.
*
@@ -165,6 +167,12 @@ OCA = OCA || {};
* @inheritdoc
*/
overrideErrorMessage: function(message, key) {
+ var original = message;
+ message = this._super(message, key);
+ if(original !== message) {
+ // we pass the parents change
+ return message;
+ }
switch(key) {
case 'ldap_port':
if (message === 'Invalid credentials') {
@@ -192,8 +200,8 @@ OCA = OCA || {};
* @param {Object} configuration
*/
onConfigSwitch: function(view, configuration) {
+ this.baseDNTestTriggered = false;
view.disableElement(view.managedItems.ldap_port.$relatedElements);
-
view.onConfigLoaded(view, configuration);
},
@@ -255,7 +263,8 @@ OCA = OCA || {};
* @param {FeaturePayload} payload
*/
onTestResultReceived: function(view, payload) {
- if(payload.feature === 'TestBaseDN') {
+ if(view.baseDNTestTriggered && payload.feature === 'TestBaseDN') {
+ view.enableElement(view.managedItems.ldap_base.$testButton);
var message;
if(payload.data.status === 'success') {
var objectsFound = parseInt(payload.data.changes.ldap_test_base, 10);
@@ -267,7 +276,8 @@ OCA = OCA || {};
message = t('user_ldap', objectsFound + ' entries available within the provided Base DN');
}
} else {
- message = t('user_ldap', 'An error occurred. Please check the Base DN, as well as connection settings and credentials.');
+ message = view.overrideErrorMessage(payload.data.message);
+ message = message || t('user_ldap', 'An error occurred. Please check the Base DN, as well as connection settings and credentials.');
if(payload.data.message) {
console.warn(payload.data.message);
}
@@ -303,7 +313,9 @@ OCA = OCA || {};
*/
onBaseDNTestButtonClick: function(event) {
event.preventDefault();
+ this.baseDNTestTriggered = true;
this.configModel.requestWizard('ldap_test_base');
+ this.disableElement(this.managedItems.ldap_base.$testButton);
},
/**
diff --git a/apps/user_ldap/js/wizard/wizardTabGeneric.js b/apps/user_ldap/js/wizard/wizardTabGeneric.js
index 720628fa609..b755f3ca060 100644
--- a/apps/user_ldap/js/wizard/wizardTabGeneric.js
+++ b/apps/user_ldap/js/wizard/wizardTabGeneric.js
@@ -70,6 +70,17 @@ OCA = OCA || {};
* @returns {string}
*/
overrideErrorMessage: function(message, key) {
+ if(message === 'LDAP authentication method rejected'
+ && !this.configModel.configuration.ldap_dn)
+ {
+ message = t('user_ldap', 'Anonymous bind is not allowed. Please provide a User DN and Password.');
+ } else if (message === 'LDAP Operations error'
+ && !this.configModel.configuration.ldap_dn
+ && !this.configModel.configuration.ldap_agent_password)
+ {
+ message = t('user_ldap', 'LDAP Operations error. Anonymous bind might not be allowed.');
+ }
+
return message;
},
diff --git a/apps/user_ldap/js/wizard/wizardTabUserFilter.js b/apps/user_ldap/js/wizard/wizardTabUserFilter.js
index 992c1ccf379..4fe223ee075 100644
--- a/apps/user_ldap/js/wizard/wizardTabUserFilter.js
+++ b/apps/user_ldap/js/wizard/wizardTabUserFilter.js
@@ -122,6 +122,12 @@ OCA = OCA || {};
* @inheritdoc
*/
overrideErrorMessage: function(message, key) {
+ var original = message;
+ message = this._super(message, key);
+ if(original !== message) {
+ // we pass the parents change
+ return message;
+ }
if( key === 'ldap_userfilter_groups'
&& message === 'memberOf is not supported by the server'
) {
diff --git a/apps/user_ldap/lib/ldap.php b/apps/user_ldap/lib/ldap.php
index 74df3dd8ae7..4d45db2e155 100644
--- a/apps/user_ldap/lib/ldap.php
+++ b/apps/user_ldap/lib/ldap.php
@@ -287,6 +287,10 @@ class LDAP implements ILDAPWrapper {
//referrals, we switch them off, but then there is AD :)
} else if ($errorCode === -1) {
throw new ServerNotAvailableException('Lost connection to LDAP server.');
+ } else if ($errorCode === 48) {
+ throw new \Exception('LDAP authentication method rejected', $errorCode);
+ } else if ($errorCode === 1) {
+ throw new \Exception('LDAP Operations error', $errorCode);
} else {
\OCP\Util::writeLog('user_ldap',
'LDAP error '.$errorMsg.' (' .
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 824923eecbf..6c39f406e83 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -657,12 +657,26 @@ class Wizard extends LDAPUtility {
\OCP\Util::writeLog('user_ldap', 'Wiz: trying port '. $p . ', TLS '. $t, \OCP\Util::DEBUG);
//connectAndBind may throw Exception, it needs to be catched by the
//callee of this method
- if($this->connectAndBind($p, $t) === true) {
- $config = array('ldapPort' => $p,
- 'ldapTLS' => intval($t)
- );
+
+ // unallowed anonymous bind throws 48. But if it throws 48, we
+ // detected port and TLS, i.e. it is successful.
+ try {
+ $settingsFound = $this->connectAndBind($p, $t);
+ } catch (\Exception $e) {
+ if($e->getCode() === 48) {
+ $settingsFound = true;
+ } else {
+ throw $e;
+ }
+ }
+
+ if ($settingsFound === true) {
+ $config = array(
+ 'ldapPort' => $p,
+ 'ldapTLS' => intval($t)
+ );
$this->configuration->setConfiguration($config);
- \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port '. $p, \OCP\Util::DEBUG);
+ \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port ' . $p, \OCP\Util::DEBUG);
$this->result->addChange('ldap_port', $p);
return $this->result;
}
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php
index 5bcd5953075..d91f1503abd 100644
--- a/apps/user_ldap/tests/group_ldap.php
+++ b/apps/user_ldap/tests/group_ldap.php
@@ -313,4 +313,74 @@ class Test_Group_Ldap extends \Test\TestCase {
$this->assertSame(2, count($groups));
}
+ /**
+ * tests that a user listing is complete, if all it's members have the group
+ * as their primary.
+ */
+ public function testUsersInGroupPrimaryMembersOnly() {
+ $access = $this->getAccessMock();
+ $this->enableGroups($access);
+
+ $access->connection->expects($this->any())
+ ->method('getFromCache')
+ ->will($this->returnValue(null));
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn, $attr) {
+ if($attr === 'primaryGroupToken') {
+ return array(1337);
+ }
+ return array();
+ }));
+
+ $access->expects($this->any())
+ ->method('groupname2dn')
+ ->will($this->returnValue('cn=foobar,dc=foo,dc=bar'));
+
+ $access->expects($this->once())
+ ->method('ownCloudUserNames')
+ ->will($this->returnValue(array('lisa', 'bart', 'kira', 'brad')));
+
+ $groupBackend = new GroupLDAP($access);
+ $users = $groupBackend->usersInGroup('foobar');
+
+ $this->assertSame(4, count($users));
+ }
+
+ /**
+ * tests that a user counting is complete, if all it's members have the group
+ * as their primary.
+ */
+ public function testCountUsersInGroupPrimaryMembersOnly() {
+ $access = $this->getAccessMock();
+ $this->enableGroups($access);
+
+ $access->connection->expects($this->any())
+ ->method('getFromCache')
+ ->will($this->returnValue(null));
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn, $attr) {
+ if($attr === 'primaryGroupToken') {
+ return array(1337);
+ }
+ return array();
+ }));
+
+ $access->expects($this->any())
+ ->method('groupname2dn')
+ ->will($this->returnValue('cn=foobar,dc=foo,dc=bar'));
+
+ $access->expects($this->once())
+ ->method('countUsers')
+ ->will($this->returnValue(4));
+
+ $groupBackend = new GroupLDAP($access);
+ $users = $groupBackend->countUsersInGroup('foobar');
+
+ $this->assertSame(4, $users);
+ }
+
}
diff --git a/config/config.sample.php b/config/config.sample.php
index 45aaf6a107d..9a40f82252a 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -487,6 +487,27 @@ $CONFIG = array(
'loglevel' => 2,
/**
+ * Log condition for log level increase based on conditions. Once one of these
+ * conditions is met, the required log level is set to debug. This allows to
+ * debug specific requests, users or apps
+ *
+ * Supported conditions:
+ * - ``shared_secret``: if a request parameter with the name `log_secret` is set to
+ * this value the condition is met
+ * - ``users``: if the current request is done by one of the specified users,
+ * this condition is met
+ * - ``apps``: if the log message is invoked by one of the specified apps,
+ * this condition is met
+ *
+ * Defaults to an empty array.
+ */
+'log.condition' => [
+ 'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
+ 'users' => ['sample-user'],
+ 'apps' => ['files'],
+],
+
+/**
* This uses PHP.date formatting; see http://php.net/manual/en/function.date.php
*/
'logdateformat' => 'F d, Y H:i:s',
diff --git a/core/ajax/share.php b/core/ajax/share.php
index a0db77fd1f9..e78d274815d 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -281,8 +281,10 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$users = array();
$limit = 0;
$offset = 0;
- while ($count < 15 && count($users) == $limit) {
- $limit = 15 - $count;
+ // limit defaults to 15 if not specified via request parameter and can be no larger than 500
+ $request_limit = min((int)$_GET['limit'] ?: 15, 500);
+ while ($count < $request_limit && count($users) == $limit) {
+ $limit = $request_limit - $count;
if ($shareWithinGroupOnly) {
$users = OC_Group::displayNamesInGroups($usergroups, (string)$_GET['search'], $limit, $offset);
} else {
@@ -319,7 +321,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
continue;
}
- if ($count < 15) {
+ if ($count < $request_limit) {
if (!isset($_GET['itemShares'])
|| !isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP])
|| !is_array((string)$_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP])
diff --git a/core/command/db/converttype.php b/core/command/db/converttype.php
index f8ded69e865..e6c0f5caa35 100644
--- a/core/command/db/converttype.php
+++ b/core/command/db/converttype.php
@@ -30,7 +30,6 @@ namespace OC\Core\Command\Db;
use \OCP\IConfig;
use OC\DB\Connection;
use OC\DB\ConnectionFactory;
-
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
diff --git a/core/css/styles.css b/core/css/styles.css
index c8704066cf1..fe259e87d51 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -638,6 +638,9 @@ label.infield {
/* Database selector */
#body-login form #selectDbType { text-align:center; white-space: nowrap; }
+#body-login form #selectDbType .info {
+ white-space: normal;
+}
#body-login form #selectDbType label {
position:static; margin:0 -3px 5px; padding:.4em;
font-size:12px; background:#f8f8f8; color:#888; cursor:pointer;
diff --git a/core/js/setup.js b/core/js/setup.js
index 95237165b40..fd2547867ff 100644
--- a/core/js/setup.js
+++ b/core/js/setup.js
@@ -9,6 +9,8 @@ $(document).ready(function() {
};
$('#selectDbType').buttonset();
+ // change links inside an info box back to their default appearance
+ $('#selectDbType p.info a').button('destroy');
if($('#hasSQLite').val()){
$('#use_other_db').hide();
diff --git a/core/js/share.js b/core/js/share.js
index 121ee97d17f..415fe41ef5f 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -491,7 +491,7 @@ OC.Share={
$('#shareWith').autocomplete({minLength: 2, delay: 750, source: function(search, response) {
var $loading = $('#dropdown .shareWithLoading');
$loading.removeClass('hidden');
- $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term.trim(), itemShares: OC.Share.itemShares, itemType: itemType }, function(result) {
+ $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term.trim(), limit: 200, itemShares: OC.Share.itemShares, itemType: itemType }, function(result) {
$loading.addClass('hidden');
if (result.status == 'success' && result.data.length > 0) {
$( "#shareWith" ).autocomplete( "option", "autoFocus", true );
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index 61cd7869768..a25a1c3b46c 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -190,7 +190,7 @@ OC.L10N.register(
"Storage & database" : "Speicher & Datenbank",
"Data folder" : "Datenverzeichnis",
"Configure the database" : "Datenbank einrichten",
- "Only %s is available." : "Es sind nur %s verfügbar.",
+ "Only %s is available." : "Es ist nur %s verfügbar.",
"Database user" : "Datenbank-Benutzer",
"Database password" : "Datenbank-Passwort",
"Database name" : "Datenbank-Name",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 86ec7e75b02..26139935feb 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -188,7 +188,7 @@
"Storage & database" : "Speicher & Datenbank",
"Data folder" : "Datenverzeichnis",
"Configure the database" : "Datenbank einrichten",
- "Only %s is available." : "Es sind nur %s verfügbar.",
+ "Only %s is available." : "Es ist nur %s verfügbar.",
"Database user" : "Datenbank-Benutzer",
"Database password" : "Datenbank-Passwort",
"Database name" : "Datenbank-Name",
diff --git a/core/templates/installation.php b/core/templates/installation.php
index 911bc05069f..b686a1ca68c 100644
--- a/core/templates/installation.php
+++ b/core/templates/installation.php
@@ -85,7 +85,12 @@ script('core', [
<div id="selectDbType">
<?php foreach($_['databases'] as $type => $label): ?>
<?php if(count($_['databases']) === 1): ?>
- <p class="info"><?php p($l->t( 'Only %s is available.', array($label) )); ?>.</p>
+ <p class="info">
+ <?php p($l->t( 'Only %s is available.', array($label) )); ?>
+ <?php p($l->t( 'Install and activate additional PHP modules to choose other database types.' )); ?><br>
+ <a href="<?php print_unescaped(link_to_docs('admin-source_install')); ?>" target="_blank">
+ <?php p($l->t( 'For more details check out the documentation.' )); ?> ↗</a>
+ </p>
<input type="hidden" id="dbtype" name="dbtype" value="<?php p($type) ?>">
<?php else: ?>
<input type="radio" name="dbtype" value="<?php p($type) ?>" id="<?php p($type) ?>"
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index f501a65da8a..d9a5024318f 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"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",
+ "Can't read file" : "Datei kann nicht gelesen werden",
"App directory already exists" : "Das Applikationsverzeichnis existiert bereits",
"Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s",
"No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
@@ -131,7 +132,7 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 2d384d00a48..6228b9e27e7 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -42,6 +42,7 @@
"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",
+ "Can't read file" : "Datei kann nicht gelesen werden",
"App directory already exists" : "Das Applikationsverzeichnis existiert bereits",
"Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s",
"No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
@@ -129,7 +130,7 @@
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index a813a654e35..fdad346751a 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"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",
+ "Can't read file" : "Datei kann nicht gelesen werden",
"App directory already exists" : "Der Ordner für die App ist bereits vorhanden.",
"Can't create app folder. Please fix permissions. %s" : "Der Ordner für die App konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s",
"No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
@@ -131,7 +132,7 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index c92e972bdbb..6b0ebc39cae 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -42,6 +42,7 @@
"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",
+ "Can't read file" : "Datei kann nicht gelesen werden",
"App directory already exists" : "Der Ordner für die App ist bereits vorhanden.",
"Can't create app folder. Please fix permissions. %s" : "Der Ordner für die App konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s",
"No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben",
@@ -129,7 +130,7 @@
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index c9259e77695..1e36bf5f818 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"File name is a reserved word" : "El nombre de archivo es una palabra reservada",
"File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido",
"File name is too long" : "El nombre del archivo es demasiado largo",
+ "Can't read file" : "No se puede leer archivo",
"App directory already exists" : "El directorio de la aplicación ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
"No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index 7d0978827e1..f50b0034c8a 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -42,6 +42,7 @@
"File name is a reserved word" : "El nombre de archivo es una palabra reservada",
"File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido",
"File name is too long" : "El nombre del archivo es demasiado largo",
+ "Can't read file" : "No se puede leer archivo",
"App directory already exists" : "El directorio de la aplicación ya existe",
"Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s",
"No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación",
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
index 54161ba47e6..74934d3fad9 100644
--- a/lib/l10n/fi_FI.js
+++ b/lib/l10n/fi_FI.js
@@ -41,6 +41,7 @@ OC.L10N.register(
"Dot files are not allowed" : "Pistetiedostot eivät ole sallittuja",
"File name contains at least one invalid character" : "Tiedoston nimi sisältää ainakin yhden virheellisen merkin",
"File name is too long" : "Tiedoston nimi on liian pitkä",
+ "Can't read file" : "Tiedostoa ei voi lukea",
"App directory already exists" : "Sovelluskansio on jo olemassa",
"Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s",
"No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa",
@@ -87,6 +88,7 @@ OC.L10N.register(
"Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen",
"You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja",
"Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Kohteen %s jakaminen epäonnistui, kohdetta %s ei löytynyt. Kenties palvelin ei ole juuri nyt tavoitettavissa.",
"Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
"Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
"Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.",
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
index 35bf7f8257d..93bc893e673 100644
--- a/lib/l10n/fi_FI.json
+++ b/lib/l10n/fi_FI.json
@@ -39,6 +39,7 @@
"Dot files are not allowed" : "Pistetiedostot eivät ole sallittuja",
"File name contains at least one invalid character" : "Tiedoston nimi sisältää ainakin yhden virheellisen merkin",
"File name is too long" : "Tiedoston nimi on liian pitkä",
+ "Can't read file" : "Tiedostoa ei voi lukea",
"App directory already exists" : "Sovelluskansio on jo olemassa",
"Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s",
"No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa",
@@ -85,6 +86,7 @@
"Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen",
"You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja",
"Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Kohteen %s jakaminen epäonnistui, kohdetta %s ei löytynyt. Kenties palvelin ei ole juuri nyt tavoitettavissa.",
"Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
"Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
"Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.",
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 10f10ec123d..5433c2e65f4 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"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",
+ "Can't read file" : "Non é posíbel ler o ficheiro",
"App directory already exists" : "Xa existe o directorio da aplicación",
"Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s",
"No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar a aplicación",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index d31cf2c4284..b2649d5e3fb 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -42,6 +42,7 @@
"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",
+ "Can't read file" : "Non é posíbel ler o ficheiro",
"App directory already exists" : "Xa existe o directorio da aplicación",
"Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s",
"No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar a aplicación",
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index b2ecb0c1b25..9b93478772b 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"File name is a reserved word" : "Il nome del file è una parola riservata",
"File name contains at least one invalid character" : "Il nome del file contiene almeno un carattere non valido",
"File name is too long" : "Il nome del file è troppo lungo",
+ "Can't read file" : "Impossibile leggere il file",
"App directory already exists" : "La cartella dell'applicazione esiste già",
"Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s",
"No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index bed8ecffbb9..121a0b9cd66 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -42,6 +42,7 @@
"File name is a reserved word" : "Il nome del file è una parola riservata",
"File name contains at least one invalid character" : "Il nome del file contiene almeno un carattere non valido",
"File name is too long" : "Il nome del file è troppo lungo",
+ "Can't read file" : "Impossibile leggere il file",
"App directory already exists" : "La cartella dell'applicazione esiste già",
"Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s",
"No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione",
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index 79dbfe309e0..72e1918244c 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -44,6 +44,7 @@ OC.L10N.register(
"File name is a reserved word" : "Bestandsnaam is een gereserveerd woord",
"File name contains at least one invalid character" : "De bestandsnaam bevat ten minste één verboden teken",
"File name is too long" : "De bestandsnaam is te lang",
+ "Can't read file" : "Kan bestand niet lezen",
"App directory already exists" : "App directory bestaat al",
"Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s",
"No source specified when installing app" : "Geen bron opgegeven bij installatie van de app",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index 723bf8adce0..fc9f30bc0e4 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -42,6 +42,7 @@
"File name is a reserved word" : "Bestandsnaam is een gereserveerd woord",
"File name contains at least one invalid character" : "De bestandsnaam bevat ten minste één verboden teken",
"File name is too long" : "De bestandsnaam is te lang",
+ "Can't read file" : "Kan bestand niet lezen",
"App directory already exists" : "App directory bestaat al",
"Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s",
"No source specified when installing app" : "Geen bron opgegeven bij installatie van de app",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 49c21be6f42..fc5aaba2844 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -41,6 +41,7 @@ OC.L10N.register(
"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 caractere inválido",
"File name is too long" : "O nome do arquivo é muito longo",
+ "Can't read file" : "Não é possível ler arquivo",
"App directory already exists" : "Diretório App já existe",
"Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s",
"No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index 7227378b0cf..7819a4c339f 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -39,6 +39,7 @@
"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 caractere inválido",
"File name is too long" : "O nome do arquivo é muito longo",
+ "Can't read file" : "Não é possível ler arquivo",
"App directory already exists" : "Diretório App já existe",
"Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s",
"No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo",
diff --git a/lib/private/app/codecheckvisitor.php b/lib/private/app/codecheckvisitor.php
index 03b238096e7..e983bd8630b 100644
--- a/lib/private/app/codecheckvisitor.php
+++ b/lib/private/app/codecheckvisitor.php
@@ -22,18 +22,9 @@
namespace OC\App;
-use OC\Hooks\BasicEmitter;
-use PhpParser\Lexer;
use PhpParser\Node;
use PhpParser\Node\Name;
-use PhpParser\NodeTraverser;
use PhpParser\NodeVisitorAbstract;
-use PhpParser\Parser;
-use RecursiveCallbackFilterIterator;
-use RecursiveDirectoryIterator;
-use RecursiveIteratorIterator;
-use RegexIterator;
-use SplFileInfo;
class CodeCheckVisitor extends NodeVisitorAbstract {
diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php
index 5072a65c02f..8501fc69ad4 100644
--- a/lib/private/appframework/dependencyinjection/dicontainer.php
+++ b/lib/private/appframework/dependencyinjection/dicontainer.php
@@ -42,7 +42,6 @@ use OC\AppFramework\Utility\SimpleContainer;
use OC\AppFramework\Utility\TimeFactory;
use OC\AppFramework\Utility\ControllerMethodReflector;
use OCP\AppFramework\IApi;
-use OCP\AppFramework\QueryException;
use OCP\AppFramework\IAppContainer;
use OCP\AppFramework\Middleware;
use OCP\IServerContainer;
diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php
index 999750fd785..8def14e8e9c 100644
--- a/lib/private/connector/sabre/objecttree.php
+++ b/lib/private/connector/sabre/objecttree.php
@@ -27,9 +27,7 @@ namespace OC\Connector\Sabre;
use OC\Connector\Sabre\Exception\InvalidPath;
use OC\Files\FileInfo;
-use OC\Files\Filesystem;
use OC\Files\Mount\MoveableMount;
-use OC_Connector_Sabre_Exception_InvalidPath;
use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php
index 1a42646daf6..45f45045643 100644
--- a/lib/private/encryption/manager.php
+++ b/lib/private/encryption/manager.php
@@ -79,7 +79,7 @@ class Manager implements IManager {
$oldEncryption = $this->config->getAppValue('files_encryption', 'installed_version');
if (!empty($oldEncryption)) {
$warning = 'Installation is in transit between the old Encryption (ownCloud <= 8.0)
- and the new encryption. Please enable the "ownCloud Default Encryption Module"
+ and the new encryption. Please enable the "Default encryption module"
and run \'occ encryption:migrate\'';
$this->logger->warning($warning);
return false;
diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php
index 45d4dd90d9f..b77672d2f6b 100644
--- a/lib/private/encryption/util.php
+++ b/lib/private/encryption/util.php
@@ -114,7 +114,7 @@ class Util {
// ownCloud <= 8.0 with the old encryption
$id = \OCA\Encryption\Crypto\Encryption::ID;
} else {
- throw new ModuleDoesNotExistsException('ownCloud default encryption module missing');
+ throw new ModuleDoesNotExistsException('Default encryption module missing');
}
}
diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php
index d0cac46e593..e47f98b0f27 100644
--- a/lib/private/files/node/root.php
+++ b/lib/private/files/node/root.php
@@ -25,14 +25,11 @@
namespace OC\Files\Node;
-use OC\Files\Cache\Cache;
use OC\Files\Mount\Manager;
use OC\Files\Mount\MountPoint;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
-use OC\Hooks\Emitter;
use OC\Hooks\PublicEmitter;
-
use OCP\Files\IRootFolder;
/**
diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php
index 3c92665da3f..24398649727 100644
--- a/lib/private/files/objectstore/objectstorestorage.php
+++ b/lib/private/files/objectstore/objectstorestorage.php
@@ -24,7 +24,6 @@
namespace OC\Files\ObjectStore;
-use OC\Files\Filesystem;
use OCP\Files\ObjectStore\IObjectStore;
class ObjectStoreStorage extends \OC\Files\Storage\Common {
@@ -220,7 +219,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
\OC\Files\Stream\Dir::register('objectstore' . $path . '/', $files);
return opendir('fakedir://objectstore' . $path . '/');
- } catch (Exception $e) {
+ } catch (\Exception $e) {
\OCP\Util::writeLog('objectstore', $e->getMessage(), \OCP\Util::ERROR);
return false;
}
diff --git a/lib/private/files/storage/localtempfiletrait.php b/lib/private/files/storage/localtempfiletrait.php
index 444e4e2e89e..7dc9b777ea1 100644
--- a/lib/private/files/storage/localtempfiletrait.php
+++ b/lib/private/files/storage/localtempfiletrait.php
@@ -21,15 +21,6 @@
namespace OC\Files\Storage;
-use OC\Files\Cache\Cache;
-use OC\Files\Cache\Scanner;
-use OC\Files\Filesystem;
-use OC\Files\Cache\Watcher;
-use OCP\Files\FileNameTooLongException;
-use OCP\Files\InvalidCharacterInPathException;
-use OCP\Files\InvalidPathException;
-use OCP\Files\ReservedWordException;
-
/**
* Storage backend class for providing common filesystem operation methods
* which are not storage-backend specific.
diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php
index e423868d82b..f2f5b9c9af7 100644
--- a/lib/private/files/stream/encryption.php
+++ b/lib/private/files/stream/encryption.php
@@ -341,8 +341,8 @@ class Encryption extends Wrapper {
} else {
$data = '';
}
+ $this->unencryptedSize = max($this->unencryptedSize, $this->position);
}
- $this->unencryptedSize = max($this->unencryptedSize, $this->position);
return $length;
}
diff --git a/lib/private/group/database.php b/lib/private/group/database.php
index a58d66010d5..ad6174808bb 100644
--- a/lib/private/group/database.php
+++ b/lib/private/group/database.php
@@ -180,8 +180,15 @@ class OC_Group_Database extends OC_Group_Backend {
* Returns a list with all groups
*/
public function getGroups($search = '', $limit = null, $offset = null) {
- $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups` WHERE LOWER(`gid`) LIKE LOWER(?) ORDER BY `gid` ASC', $limit, $offset);
- $result = $stmt->execute(array('%' . $search . '%'));
+ $parameters = [];
+ $searchLike = '';
+ if ($search !== '') {
+ $parameters[] = '%' . $search . '%';
+ $searchLike = ' WHERE LOWER(`gid`) LIKE LOWER(?)';
+ }
+
+ $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups`' . $searchLike . ' ORDER BY `gid` ASC', $limit, $offset);
+ $result = $stmt->execute($parameters);
$groups = array();
while ($row = $result->fetchRow()) {
$groups[] = $row['gid'];
@@ -212,10 +219,17 @@ class OC_Group_Database extends OC_Group_Backend {
* @return array an array of user ids
*/
public function usersInGroup($gid, $search = '', $limit = null, $offset = null) {
- $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ? ORDER BY `uid` ASC',
+ $parameters = [$gid];
+ $searchLike = '';
+ if ($search !== '') {
+ $parameters[] = '%' . $search . '%';
+ $searchLike = ' AND `uid` LIKE ?';
+ }
+
+ $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ?' . $searchLike . ' ORDER BY `uid` ASC',
$limit,
$offset);
- $result = $stmt->execute(array($gid, '%'.$search.'%'));
+ $result = $stmt->execute($parameters);
$users = array();
while ($row = $result->fetchRow()) {
$users[] = $row['uid'];
@@ -231,8 +245,15 @@ class OC_Group_Database extends OC_Group_Backend {
* @throws \OC\DatabaseException
*/
public function countUsersInGroup($gid, $search = '') {
- $stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?');
- $result = $stmt->execute(array($gid, '%' . $search . '%'));
+ $parameters = [$gid];
+ $searchLike = '';
+ if ($search !== '') {
+ $parameters[] = '%' . $search . '%';
+ $searchLike = ' AND `uid` LIKE ?';
+ }
+
+ $stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ?' . $searchLike);
+ $result = $stmt->execute($parameters);
$count = $result->fetchOne();
if($count !== false) {
$count = intval($count);
diff --git a/lib/private/log.php b/lib/private/log.php
index 56f36787e09..840713b2eda 100644
--- a/lib/private/log.php
+++ b/lib/private/log.php
@@ -28,6 +28,7 @@
namespace OC;
use \OCP\ILogger;
+use OCP\Security\StringUtils;
/**
* logging utilities
@@ -41,15 +42,29 @@ use \OCP\ILogger;
class Log implements ILogger {
+ /** @var string */
private $logger;
+ /** @var SystemConfig */
+ private $config;
+
+ /** @var boolean|null cache the result of the log condition check for the request */
+ private $logConditionSatisfied = null;
/**
* @param string $logger The logger that should be used
+ * @param SystemConfig $config the system config object
*/
- public function __construct($logger=null) {
+ public function __construct($logger=null, SystemConfig $config=null) {
+ // FIXME: Add this for backwards compatibility, should be fixed at some point probably
+ if($config === null) {
+ $config = \OC::$server->getSystemConfig();
+ }
+
+ $this->config = $config;
+
// FIXME: Add this for backwards compatibility, should be fixed at some point probably
if($logger === null) {
- $this->logger = 'OC_Log_'.ucfirst(\OC_Config::getValue('log_type', 'owncloud'));
+ $this->logger = 'OC_Log_'.ucfirst($this->config->getValue('log_type', 'owncloud'));
call_user_func(array($this->logger, 'init'));
} else {
$this->logger = $logger;
@@ -158,8 +173,22 @@ class Log implements ILogger {
* @param array $context
*/
public function log($level, $message, array $context = array()) {
+ $minLevel = min($this->config->getValue('loglevel', \OC_Log::WARN), \OC_Log::ERROR);
+ $logCondition = $this->config->getValue('log.condition', []);
+
if (isset($context['app'])) {
$app = $context['app'];
+
+ /**
+ * check log condition based on the context of each log message
+ * once this is met -> change the required log level to debug
+ */
+ if(!empty($logCondition)
+ && isset($logCondition['apps'])
+ && in_array($app, $logCondition['apps'], true)) {
+ $minLevel = \OC_Log::DEBUG;
+ }
+
} else {
$app = 'no app in context';
}
@@ -172,7 +201,45 @@ class Log implements ILogger {
// interpolate replacement values into the message and return
$message = strtr($message, $replace);
- $logger = $this->logger;
- call_user_func(array($logger, 'write'), $app, $message, $level);
+ /**
+ * check for a special log condition - this enables an increased log on
+ * a per request/user base
+ */
+ if($this->logConditionSatisfied === null) {
+ // default to false to just process this once per request
+ $this->logConditionSatisfied = false;
+ if(!empty($logCondition)) {
+
+ // check for secret token in the request
+ if(isset($logCondition['shared_secret'])) {
+ $request = \OC::$server->getRequest();
+
+ // if token is found in the request change set the log condition to satisfied
+ if($request && StringUtils::equals($request->getParam('log_secret'), $logCondition['shared_secret'])) {
+ $this->logConditionSatisfied = true;
+ }
+ }
+
+ // check for user
+ if(isset($logCondition['users'])) {
+ $user = \OC::$server->getUserSession()->getUser();
+
+ // if the user matches set the log condition to satisfied
+ if($user !== null && in_array($user->getUID(), $logCondition['users'], true)) {
+ $this->logConditionSatisfied = true;
+ }
+ }
+ }
+ }
+
+ // if log condition is satisfied change the required log level to DEBUG
+ if($this->logConditionSatisfied) {
+ $minLevel = \OC_Log::DEBUG;
+ }
+
+ if ($level >= $minLevel) {
+ $logger = $this->logger;
+ call_user_func(array($logger, 'write'), $app, $message, $level);
+ }
}
}
diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php
index b1b15f12ed7..5e92db398f9 100644
--- a/lib/private/log/errorhandler.php
+++ b/lib/private/log/errorhandler.php
@@ -64,10 +64,16 @@ class ErrorHandler {
}
}
- // Uncaught exception handler
+ /**
+ * Uncaught exception handler
+ *
+ * @param \Exception $exception
+ */
public static function onException($exception) {
- $msg = $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine();
- self::$logger->critical(self::removePassword($msg), array('app' => 'PHP'));
+ $class = get_class($exception);
+ $msg = $exception->getMessage();
+ $msg = "$class: $msg at " . $exception->getFile() . '#' . $exception->getLine();
+ self::$logger->critical(self::removePassword($msg), ['app' => 'PHP']);
}
//Recoverable errors handler
diff --git a/lib/private/log/errorlog.php b/lib/private/log/errorlog.php
index 007ab307722..ad3605136d0 100644
--- a/lib/private/log/errorlog.php
+++ b/lib/private/log/errorlog.php
@@ -39,10 +39,7 @@ class OC_Log_Errorlog {
* @param int $level
*/
public static function write($app, $message, $level) {
- $minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR);
- if ($level >= $minLevel) {
- error_log('[owncloud]['.$app.'] '.$message);
- }
+ error_log('[owncloud]['.$app.']['.$level.'] '.$message);
}
}
diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php
index 049b8dbdfa3..0125164394d 100644
--- a/lib/private/log/owncloud.php
+++ b/lib/private/log/owncloud.php
@@ -69,40 +69,40 @@ class OC_Log_Owncloud {
* @param int $level
*/
public static function write($app, $message, $level) {
- $minLevel=min(OC_Config::getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR);
- if($level>=$minLevel) {
- // default to ISO8601
- $format = OC_Config::getValue('logdateformat', 'c');
- $logtimezone=OC_Config::getValue( "logtimezone", 'UTC' );
- try {
- $timezone = new DateTimeZone($logtimezone);
- } catch (Exception $e) {
- $timezone = new DateTimeZone('UTC');
- }
- $time = new DateTime(null, $timezone);
- $request = \OC::$server->getRequest();
- $reqId = $request->getId();
- $remoteAddr = $request->getRemoteAddress();
- // remove username/passwords from URLs before writing the to the log file
- $time = $time->format($format);
- if($minLevel == OC_Log::DEBUG) {
- $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--';
- $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--';
- $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url');
- }
- else {
- $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time');
- }
- $entry = json_encode($entry);
- $handle = @fopen(self::$logFile, 'a');
- @chmod(self::$logFile, 0640);
- if ($handle) {
- fwrite($handle, $entry."\n");
- fclose($handle);
- } else {
- // Fall back to error_log
- error_log($entry);
- }
+ $config = \OC::$server->getSystemConfig();
+
+ // default to ISO8601
+ $format = $config->getValue('logdateformat', 'c');
+ $logtimezone = $config->getValue( "logtimezone", 'UTC' );
+ try {
+ $timezone = new DateTimeZone($logtimezone);
+ } catch (Exception $e) {
+ $timezone = new DateTimeZone('UTC');
+ }
+ $time = new DateTime(null, $timezone);
+ $request = \OC::$server->getRequest();
+ $reqId = $request->getId();
+ $remoteAddr = $request->getRemoteAddress();
+ // remove username/passwords from URLs before writing the to the log file
+ $time = $time->format($format);
+ $minLevel=min($config->getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR);
+ if($minLevel == OC_Log::DEBUG) {
+ $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--';
+ $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--';
+ $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url');
+ }
+ else {
+ $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time');
+ }
+ $entry = json_encode($entry);
+ $handle = @fopen(self::$logFile, 'a');
+ @chmod(self::$logFile, 0640);
+ if ($handle) {
+ fwrite($handle, $entry."\n");
+ fclose($handle);
+ } else {
+ // Fall back to error_log
+ error_log($entry);
}
}
diff --git a/lib/private/log/syslog.php b/lib/private/log/syslog.php
index 1763e6de6d1..8595b707d59 100644
--- a/lib/private/log/syslog.php
+++ b/lib/private/log/syslog.php
@@ -47,10 +47,7 @@ class OC_Log_Syslog {
* @param int $level
*/
public static function write($app, $message, $level) {
- $minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR);
- if ($level >= $minLevel) {
- $syslog_level = self::$levels[$level];
- syslog($syslog_level, '{'.$app.'} '.$message);
- }
+ $syslog_level = self::$levels[$level];
+ syslog($syslog_level, '{'.$app.'} '.$message);
}
}
diff --git a/lib/private/search/result/file.php b/lib/private/search/result/file.php
index 50b74e1ced2..4329f504a7d 100644
--- a/lib/private/search/result/file.php
+++ b/lib/private/search/result/file.php
@@ -23,7 +23,6 @@
*/
namespace OC\Search\Result;
-use OC\Files\Filesystem;
use OCP\Files\FileInfo;
use OCP\Files\Folder;
diff --git a/lib/private/user.php b/lib/private/user.php
index b3677233825..2192cbba322 100644
--- a/lib/private/user.php
+++ b/lib/private/user.php
@@ -241,7 +241,10 @@ class OC_User {
$result = self::getUserSession()->login($loginname, $password);
if ($result) {
//we need to pass the user name, which may differ from login name
- OC_Util::setupFS(self::getUserSession()->getUser()->getUID());
+ $user = self::getUserSession()->getUser()->getUID();
+ OC_Util::setupFS($user);
+ //trigger creation of user home and /files folder
+ \OC::$server->getUserFolder($user);
}
return $result;
}
diff --git a/lib/private/user/database.php b/lib/private/user/database.php
index f2fa0cc39ce..d080bff04b5 100644
--- a/lib/private/user/database.php
+++ b/lib/private/user/database.php
@@ -148,11 +148,19 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend {
* Get a list of all display names and user ids.
*/
public function getDisplayNames($search = '', $limit = null, $offset = null) {
+ $parameters = [];
+ $searchLike = '';
+ if ($search !== '') {
+ $parameters[] = '%' . $search . '%';
+ $parameters[] = '%' . $search . '%';
+ $searchLike = ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
+ . 'LOWER(`uid`) LIKE LOWER(?)';
+ }
+
$displayNames = array();
$query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`'
- . ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
- . 'LOWER(`uid`) LIKE LOWER(?) ORDER BY `uid` ASC', $limit, $offset);
- $result = $query->execute(array('%' . $search . '%', '%' . $search . '%'));
+ . $searchLike .' ORDER BY `uid` ASC', $limit, $offset);
+ $result = $query->execute($parameters);
while ($row = $result->fetchRow()) {
$displayNames[$row['uid']] = $row['displayname'];
}
@@ -220,8 +228,15 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend {
* Get a list of all users.
*/
public function getUsers($search = '', $limit = null, $offset = null) {
- $query = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?) ORDER BY `uid` ASC', $limit, $offset);
- $result = $query->execute(array('%' . $search . '%'));
+ $parameters = [];
+ $searchLike = '';
+ if ($search !== '') {
+ $parameters[] = '%' . $search . '%';
+ $searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';
+ }
+
+ $query = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users`' . $searchLike . ' ORDER BY `uid` ASC', $limit, $offset);
+ $result = $query->execute($parameters);
$users = array();
while ($row = $result->fetchRow()) {
$users[] = $row['uid'];
diff --git a/lib/private/util.php b/lib/private/util.php
index 367199f7735..4470006b90c 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -189,9 +189,6 @@ class OC_Util {
//jail the user into his "home" directory
\OC\Files\Filesystem::init($user, $userDir);
- //trigger creation of user home and /files folder
- \OC::$server->getUserFolder($user);
-
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $userDir));
}
\OC::$server->getEventLogger()->end('setup_fs');
@@ -749,14 +746,14 @@ class OC_Util {
if($iniWrapper->getBool('mbstring.func_overload') !== null &&
$iniWrapper->getBool('mbstring.func_overload') === true) {
$errors[] = array(
- 'error' => $l->t('mbstring.func_overload is set to "%s" instead to the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]),
+ 'error' => $l->t('mbstring.func_overload is set to "%s" instead of the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]),
'hint' => $l->t('To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini')
);
}
if (!self::isAnnotationsWorking()) {
$errors[] = array(
- 'error' => $l->t('PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.'),
+ 'error' => $l->t('PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible.'),
'hint' => $l->t('This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.')
);
}
@@ -1335,7 +1332,7 @@ class OC_Util {
if (ini_get('xcache.admin.enable_auth')) {
OC_Log::write('core', 'XCache opcode cache will not be cleared because "xcache.admin.enable_auth" is enabled.', \OC_Log::WARN);
} else {
- xcache_clear_cache(XC_TYPE_PHP, 0);
+ @xcache_clear_cache(XC_TYPE_PHP, 0);
}
}
// Opcache (PHP >= 5.5)
diff --git a/lib/public/appframework/http/contentsecuritypolicy.php b/lib/public/appframework/http/contentsecuritypolicy.php
index be4b6e60f97..9c7218dc8ba 100644
--- a/lib/public/appframework/http/contentsecuritypolicy.php
+++ b/lib/public/appframework/http/contentsecuritypolicy.php
@@ -101,7 +101,7 @@ class ContentSecurityPolicy {
* @since 8.1.0
*/
public function allowEvalScript($state = true) {
- $this->evalScriptAllowed= $state;
+ $this->evalScriptAllowed = $state;
return $this;
}
@@ -118,6 +118,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed script domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowScriptDomain($domain) {
+ $this->allowedScriptDomains = array_diff($this->allowedScriptDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Whether inline CSS snippets are allowed or forbidden
* @param bool $state
* @return $this
@@ -141,6 +153,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed style domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowStyleDomain($domain) {
+ $this->allowedStyleDomains = array_diff($this->allowedStyleDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Allows using fonts from a specific domain. Use * to allow
* fonts from all domains.
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
@@ -153,6 +177,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed font domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowFontDomain($domain) {
+ $this->allowedFontDomains = array_diff($this->allowedFontDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Allows embedding images from a specific domain. Use * to allow
* images from all domains.
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
@@ -165,6 +201,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed image domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowImageDomain($domain) {
+ $this->allowedImageDomains = array_diff($this->allowedImageDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* To which remote domains the JS connect to.
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
* @return $this
@@ -176,7 +224,19 @@ class ContentSecurityPolicy {
}
/**
- * From whoch domains media elements can be embedded.
+ * Remove the specified allowed connect domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowConnectDomain($domain) {
+ $this->allowedConnectDomains = array_diff($this->allowedConnectDomains, [$domain]);
+ return $this;
+ }
+
+ /**
+ * From which domains media elements can be embedded.
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
* @return $this
* @since 8.1.0
@@ -187,6 +247,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed media domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowMediaDomain($domain) {
+ $this->allowedMediaDomains = array_diff($this->allowedMediaDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* From which domains objects such as <object>, <embed> or <applet> are executed
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
* @return $this
@@ -198,6 +270,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed object domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowObjectDomain($domain) {
+ $this->allowedObjectDomains = array_diff($this->allowedObjectDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Which domains can be embedded in an iframe
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
* @return $this
@@ -209,6 +293,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed frame domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowFrameDomain($domain) {
+ $this->allowedFrameDomains = array_diff($this->allowedFrameDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Domains from which web-workers and nested browsing content can load elements
* @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized.
* @return $this
@@ -220,6 +316,18 @@ class ContentSecurityPolicy {
}
/**
+ * Remove the specified allowed child src domain from the allowed domains.
+ *
+ * @param string $domain
+ * @return $this
+ * @since 8.1.0
+ */
+ public function disallowChildSrcDomain($domain) {
+ $this->allowedChildSrcDomains = array_diff($this->allowedChildSrcDomains, [$domain]);
+ return $this;
+ }
+
+ /**
* Get the generated Content-Security-Policy as a string
* @return string
* @since 8.1.0
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index a6c16fa5f55..039a66fd753 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Povolit šifrování",
"No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.",
"Select default encryption module:" : "Vybrat výchozí šifrovací modul:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.",
"Start migration" : "Spustit migraci",
"This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index 627f21b95b2..5668be982a7 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Povolit šifrování",
"No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.",
"Select default encryption module:" : "Vybrat výchozí šifrovací modul:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.",
"Start migration" : "Spustit migraci",
"This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index e0bf022dd39..5c358a3c77d 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
"Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index f0a2efdbf91..9b364c78f14 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
"Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 4b8f056b4e4..d6f5756d167 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
"Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 977ade2a79b..2d6ed050056 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
"Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index 76b269cf443..34dac3237fe 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
"No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.",
"Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.",
"Start migration" : "Έναρξη μετάβασης",
"This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index 02306218155..f9fc4cacf13 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
"No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.",
"Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.",
"Start migration" : "Έναρξη μετάβασης",
"This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index b5498e54347..81c5e992fd3 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Habilitar cifrado",
"No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.",
"Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.",
"Start migration" : "Iniciar migración",
"This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index b22631b5406..8ff4ab24edd 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Habilitar cifrado",
"No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.",
"Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.",
"Start migration" : "Iniciar migración",
"This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index 18736c23151..31c1b32e966 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -139,7 +139,6 @@ OC.L10N.register(
"Enable encryption" : "Käytä salausta",
"No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.",
"Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.",
"Start migration" : "Käynnistä migraatio",
"This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index 9dc33ddd9fa..dc045ec042e 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -137,7 +137,6 @@
"Enable encryption" : "Käytä salausta",
"No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.",
"Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.",
"Start migration" : "Käynnistä migraatio",
"This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index c5c80130933..fe80558e76a 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Activer le chiffrement",
"No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.",
"Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.",
"Start migration" : "Démarrer la migration",
"This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index c50304bb099..32dd9d0bde1 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Activer le chiffrement",
"No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.",
"Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.",
"Start migration" : "Démarrer la migration",
"This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index a9216f36da8..f5cd082e8f0 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Activar o cifrado",
"No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.",
"Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.",
"Start migration" : "Iniciar a migración",
"This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.",
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index 0f90b188d52..86194a41d2a 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Activar o cifrado",
"No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.",
"Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.",
"Start migration" : "Iniciar a migración",
"This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.",
diff --git a/settings/l10n/id.js b/settings/l10n/id.js
index 177e2f70f95..3a542c05f84 100644
--- a/settings/l10n/id.js
+++ b/settings/l10n/id.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Aktifkan enkripsi",
"No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.",
"Select default encryption module:" : "Pilih modul enkripsi baku:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.",
"Start migration" : "Mulai migrasi",
"This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.",
diff --git a/settings/l10n/id.json b/settings/l10n/id.json
index 30acbef09c2..cebcad27207 100644
--- a/settings/l10n/id.json
+++ b/settings/l10n/id.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Aktifkan enkripsi",
"No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.",
"Select default encryption module:" : "Pilih modul enkripsi baku:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.",
"Start migration" : "Mulai migrasi",
"This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 8e9ae024f1a..1e00cc5b87a 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Abilita cifratura",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.",
"Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.",
"Start migration" : "Avvia migrazione",
"This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 00e55c4b378..8eee9bff394 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Abilita cifratura",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.",
"Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.",
"Start migration" : "Avvia migrazione",
"This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.",
diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js
index 7cc3c07d332..74d80b62413 100644
--- a/settings/l10n/ko.js
+++ b/settings/l10n/ko.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "암호화 사용",
"No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.",
"Select default encryption module:" : "기본 암호화 모듈 선택:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.",
"Start migration" : "이전 시작",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json
index 97049267a11..98f7519598a 100644
--- a/settings/l10n/ko.json
+++ b/settings/l10n/ko.json
@@ -145,7 +145,6 @@
"Enable encryption" : "암호화 사용",
"No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.",
"Select default encryption module:" : "기본 암호화 모듈 선택:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.",
"Start migration" : "이전 시작",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 3c42aa7f35b..f621d9a07cd 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Versleuteling inschakelen",
"No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu",
"Select default encryption module:" : "Selecteer de standaard cryptomodule:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.",
"Start migration" : "Start migratie",
"This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index d2bb1d66b58..931569bd57b 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Versleuteling inschakelen",
"No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu",
"Select default encryption module:" : "Selecteer de standaard cryptomodule:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.",
"Start migration" : "Start migratie",
"This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index f516d763038..079e41d8738 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Ativar criptografia",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.",
"Select default encryption module:" : "Selecione o módulo de criptografia padrão:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.",
"Start migration" : "Iniciar migração",
"This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index f982b48d150..9b724b55cf4 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Ativar criptografia",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.",
"Select default encryption module:" : "Selecione o módulo de criptografia padrão:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.",
"Start migration" : "Iniciar migração",
"This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js
index 7cc1ce408d3..3c189c7ad8d 100644
--- a/settings/l10n/sr.js
+++ b/settings/l10n/sr.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"Enable encryption" : "Укључи шифровање",
"No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација",
"Select default encryption module:" : "Изаберите подразумевани шифрарски модул:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.",
"Start migration" : "Покрени пресељење",
"This is used for sending out notifications." : "Ово се користи за слање обавештења.",
diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json
index d2d33b143b1..da2a1f49e0c 100644
--- a/settings/l10n/sr.json
+++ b/settings/l10n/sr.json
@@ -145,7 +145,6 @@
"Enable encryption" : "Укључи шифровање",
"No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација",
"Select default encryption module:" : "Изаберите подразумевани шифрарски модул:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.",
"Start migration" : "Покрени пресељење",
"This is used for sending out notifications." : "Ово се користи за слање обавештења.",
diff --git a/settings/templates/admin.php b/settings/templates/admin.php
index 3c21a547092..f9a99b589af 100644
--- a/settings/templates/admin.php
+++ b/settings/templates/admin.php
@@ -358,7 +358,7 @@ if ($_['cronErrors']) {
<div id="migrationWarning" class="<?php if ($_['encryptionReady']) p('hidden'); ?>">
<?php
if ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === true) {
- p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the "ownCloud Default Encryption Module" and run \'occ encryption:migrate\''));
+ p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the "Default encryption module" and run \'occ encryption:migrate\''));
} elseif ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === false) {
p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.')); ?>
<input type="submit" name="startmigration" id="startmigration"
diff --git a/tests/core/avatar/avatarcontrollertest.php b/tests/core/avatar/avatarcontrollertest.php
index a5456eb6789..c58d7febc3f 100644
--- a/tests/core/avatar/avatarcontrollertest.php
+++ b/tests/core/avatar/avatarcontrollertest.php
@@ -88,11 +88,7 @@ class AvatarControllerTest extends \Test\TestCase {
$this->user = $this->getUniqueID('user');
OC::$server->getUserManager()->createUser($this->user, $this->user);
- \OC_Util::tearDownFS();
- \OC_User::setUserId('');
- Filesystem::tearDown();
- \OC_User::setUserId($this->user);
- \OC_Util::setupFS($this->user);
+ $this->loginAsUser($this->user);
// Create Cache dir
$view = new \OC\Files\View('/'.$this->user);
diff --git a/tests/karma.config.js b/tests/karma.config.js
index 997da4bcb26..8aeadc123e7 100644
--- a/tests/karma.config.js
+++ b/tests/karma.config.js
@@ -54,7 +54,8 @@ module.exports = function(config) {
'apps/files_sharing/js/app.js',
'apps/files_sharing/js/sharedfilelist.js',
'apps/files_sharing/js/share.js',
- 'apps/files_sharing/js/external.js'
+ 'apps/files_sharing/js/external.js',
+ 'apps/files_sharing/js/public.js'
],
testFiles: ['apps/files_sharing/tests/js/*.js']
},
diff --git a/tests/lib/appframework/http/ContentSecurityPolicyTest.php b/tests/lib/appframework/http/ContentSecurityPolicyTest.php
index f79c23ae644..18d71df483f 100644
--- a/tests/lib/appframework/http/ContentSecurityPolicyTest.php
+++ b/tests/lib/appframework/http/ContentSecurityPolicyTest.php
@@ -47,6 +47,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowScriptDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowScriptDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' www.owncloud.com 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowScriptDomainMultipleStacked() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org')->disallowScriptDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyScriptAllowInline() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
@@ -85,6 +109,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowStyleDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowStyleDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowStyleDomainMultipleStacked() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org')->disallowStyleDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyStyleAllowInline() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
@@ -121,6 +169,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowImageDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowImageDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' www.owncloud.com;font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowImageDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org')->disallowImageDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyFontDomainValid() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self'";
@@ -136,6 +208,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowFontDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowFontDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowFontDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org')->disallowFontDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyConnectDomainValid() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self'";
@@ -151,6 +247,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowConnectDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowConnectDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowConnectDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org')->disallowConnectDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyMediaDomainValid() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com";
@@ -166,6 +286,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowMediaDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowMediaDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com";
+
+ $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowMediaDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org')->disallowMediaDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetPolicyObjectDomainValid() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com";
@@ -181,6 +325,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowObjectDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowObjectDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com";
+
+ $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowObjectDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org')->disallowObjectDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetAllowedFrameDomain() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com";
@@ -196,6 +364,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowFrameDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowFrameDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com";
+
+ $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowFrameDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org')->disallowFrameDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testGetAllowedChildSrcDomain() {
$expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src child.owncloud.com";
@@ -211,6 +403,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase {
$this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
}
+ public function testGetPolicyDisallowChildSrcDomain() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowChildSrcDomainMultiple() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src www.owncloud.com";
+
+ $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
+ public function testGetPolicyDisallowChildSrcDomainMultipleStakes() {
+ $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'";
+
+ $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com');
+ $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com');
+ $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy());
+ }
+
public function testConfigureStacked() {
$expectedPolicy = "default-src 'none';script-src 'self' script.owncloud.org;style-src 'self' style.owncloud.org;img-src 'self' img.owncloud.org;font-src 'self' font.owncloud.org;connect-src 'self' connect.owncloud.org;media-src 'self' media.owncloud.org;object-src objects.owncloud.org;frame-src frame.owncloud.org;child-src child.owncloud.org";
diff --git a/tests/lib/db/migrator.php b/tests/lib/db/migrator.php
index 54267740480..6bde68c2d20 100644
--- a/tests/lib/db/migrator.php
+++ b/tests/lib/db/migrator.php
@@ -26,11 +26,17 @@ class Migrator extends \Test\TestCase {
*/
private $manager;
+ /**
+ * @var IConfig
+ **/
+ private $config;
+
private $tableName;
protected function setUp() {
parent::setUp();
+ $this->config = \OC::$server->getConfig();
$this->connection = \OC_DB::getConnection();
if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) {
$this->markTestSkipped('DB migration tests are not supported on OCI');
@@ -39,7 +45,7 @@ class Migrator extends \Test\TestCase {
$this->markTestSkipped('DB migration tests are not supported on MSSQL');
}
$this->manager = new \OC\DB\MDB2SchemaManager($this->connection);
- $this->tableName = strtolower($this->getUniqueID('oc_test_'));
+ $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_'));
}
protected function tearDown() {
@@ -109,6 +115,27 @@ class Migrator extends \Test\TestCase {
$this->assertTrue(true);
}
+ public function testUpgradeDifferentPrefix() {
+ $oldTablePrefix = $this->config->getSystemValue('dbtableprefix', 'oc_');
+
+ $this->config->setSystemValue('dbtableprefix', 'ownc_');
+ $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix') . 'test_'));
+
+ list($startSchema, $endSchema) = $this->getDuplicateKeySchemas();
+ $migrator = $this->manager->getMigrator();
+ $migrator->migrate($startSchema);
+
+ $this->connection->insert($this->tableName, array('id' => 1, 'name' => 'foo'));
+ $this->connection->insert($this->tableName, array('id' => 2, 'name' => 'bar'));
+ $this->connection->insert($this->tableName, array('id' => 3, 'name' => 'qwerty'));
+
+ $migrator->checkMigrate($endSchema);
+ $migrator->migrate($endSchema);
+ $this->assertTrue(true);
+
+ $this->config->setSystemValue('dbtableprefix', $oldTablePrefix);
+ }
+
public function testInsertAfterUpgrade() {
list($startSchema, $endSchema) = $this->getDuplicateKeySchemas();
$migrator = $this->manager->getMigrator();
diff --git a/tests/lib/files/node/integration.php b/tests/lib/files/node/integration.php
index 545793be54a..2d5ccd1fb85 100644
--- a/tests/lib/files/node/integration.php
+++ b/tests/lib/files/node/integration.php
@@ -8,7 +8,6 @@
namespace Test\Files\Node;
-use OC\Files\Cache\Cache;
use OC\Files\Node\Root;
use OC\Files\Storage\Temporary;
use OC\Files\View;
diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php
index 30c6d247236..040be7256a6 100644
--- a/tests/lib/files/stream/encryption.php
+++ b/tests/lib/files/stream/encryption.php
@@ -3,10 +3,12 @@
namespace Test\Files\Stream;
use OC\Files\View;
-use OCA\Encryption_Dummy\DummyModule;
class Encryption extends \Test\TestCase {
+ /** @var \OCP\Encryption\IEncryptionModule | \PHPUnit_Framework_MockObject_MockObject */
+ private $encryptionModule;
+
/**
* @param string $fileName
* @param string $mode
@@ -21,7 +23,7 @@ class Encryption extends \Test\TestCase {
$fullPath = $fileName;
$header = [];
$uid = '';
- $encryptionModule = $this->buildMockModule();
+ $this->encryptionModule = $this->buildMockModule();
$storage = $this->getMockBuilder('\OC\Files\Storage\Storage')
->disableOriginalConstructor()->getMock();
$encStorage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Encryption')
@@ -43,7 +45,7 @@ class Encryption extends \Test\TestCase {
->willReturn(['user1', $internalPath]);
return \OC\Files\Stream\Encryption::wrap($source, $internalPath,
- $fullPath, $header, $uid, $encryptionModule, $storage, $encStorage,
+ $fullPath, $header, $uid, $this->encryptionModule, $storage, $encStorage,
$util, $file, $mode, $size, $unencryptedSize, 8192);
}
@@ -221,10 +223,15 @@ class Encryption extends \Test\TestCase {
* @dataProvider dataFilesProvider
*/
public function testWriteReadBigFile($testFile) {
+
$expectedData = file_get_contents(\OC::$SERVERROOT . '/tests/data/' . $testFile);
// write it
$fileName = tempnam("/tmp", "FOO");
$stream = $this->getStream($fileName, 'w+', 0);
+ // while writing the file from the beginning to the end we should never try
+ // to read parts of the file. This should only happen for write operations
+ // in the middle of a file
+ $this->encryptionModule->expects($this->never())->method('decrypt');
fwrite($stream, $expectedData);
fclose($stream);
diff --git a/tests/lib/logger.php b/tests/lib/logger.php
index 700a847917b..9a9f5be12fc 100644
--- a/tests/lib/logger.php
+++ b/tests/lib/logger.php
@@ -21,14 +21,38 @@ class Logger extends TestCase {
parent::setUp();
self::$logs = array();
- $this->logger = new Log('Test\Logger');
+ $this->config = $this->getMockBuilder(
+ '\OC\SystemConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->logger = new Log('Test\Logger', $this->config);
}
public function testInterpolation() {
$logger = $this->logger;
- $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
+ $logger->warning('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
- $expected = array('1 {Message {nothing} Bob Bar a}');
+ $expected = array('2 {Message {nothing} Bob Bar a}');
+ $this->assertEquals($expected, $this->getLogs());
+ }
+
+ public function testAppCondition() {
+ $this->config->expects($this->any())
+ ->method('getValue')
+ ->will(($this->returnValueMap([
+ ['loglevel', \OC_Log::WARN, \OC_Log::WARN],
+ ['log.condition', [], ['apps' => ['files']]]
+ ])));
+ $logger = $this->logger;
+
+ $logger->info('Don\'t display info messages');
+ $logger->info('Show info messages of files app', ['app' => 'files']);
+ $logger->warning('Show warning messages of other apps');
+
+ $expected = [
+ '1 Show info messages of files app',
+ '2 Show warning messages of other apps',
+ ];
$this->assertEquals($expected, $this->getLogs());
}
diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php
index 76d5662da9d..c1ebfb025cf 100644
--- a/tests/lib/testcase.php
+++ b/tests/lib/testcase.php
@@ -174,6 +174,9 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
\OC\Files\Filesystem::tearDown();
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
+ if (\OC_User::userExists($user)) {
+ \OC::$server->getUserFolder($user);
+ }
}
/**