summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/encryption/l10n/fr.js4
-rw-r--r--apps/encryption/l10n/fr.json4
-rw-r--r--apps/files/css/files.css6
-rw-r--r--apps/files/js/filelist.js6
-rw-r--r--apps/files/l10n/sq.js4
-rw-r--r--apps/files/l10n/sq.json4
-rw-r--r--apps/files/templates/simplelist.php3
-rw-r--r--apps/files_external/l10n/fr.js4
-rw-r--r--apps/files_external/l10n/fr.json4
-rw-r--r--apps/files_external/l10n/sq.js5
-rw-r--r--apps/files_external/l10n/sq.json5
-rw-r--r--apps/files_external/templates/settings.php6
-rw-r--r--apps/files_external/tests/service/userglobalstoragesservicetest.php5
-rw-r--r--apps/files_sharing/api/server2server.php1
-rw-r--r--apps/files_sharing/l10n/sq.js3
-rw-r--r--apps/files_sharing/l10n/sq.json3
-rw-r--r--apps/files_sharing/templates/list.php3
-rw-r--r--apps/files_sharing/templates/settings-admin.php4
-rw-r--r--apps/files_trashbin/js/app.js34
-rw-r--r--apps/files_trashbin/l10n/sq.js4
-rw-r--r--apps/files_trashbin/l10n/sq.json4
-rw-r--r--apps/user_ldap/group_ldap.php6
-rw-r--r--apps/user_ldap/l10n/sq.js1
-rw-r--r--apps/user_ldap/l10n/sq.json1
-rw-r--r--apps/user_ldap/lib/access.php70
-rw-r--r--apps/user_ldap/lib/user/user.php17
-rw-r--r--apps/user_ldap/lib/wizard.php6
-rw-r--r--apps/user_ldap/tests/group_ldap.php4
-rw-r--r--apps/user_ldap/tests/user_ldap.php4
-rw-r--r--apps/user_ldap/user_ldap.php4
30 files changed, 134 insertions, 95 deletions
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index 3ee1c05ffa7..f6016cc3ce6 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -28,10 +28,10 @@ OC.L10N.register(
"one-time password for server-side-encryption" : "Mot de passe à usage unique pour le chiffrement côté serveur",
"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.",
"Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le repartager avec vous. ",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjour,\n\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe '%s'.\n\nVeuillez vous connecter dans l'interface web et aller dans la section \"Module de chiffrement de base d'ownCloud\" de vos paramètres personnels. De là, mettez à jour votre mot de passe de chiffrement en entrant le mot de passe fourni dans ce message dans le champ \"Ancien mot de passe de connexion\", et votre mot de passe de connexion actuel.\n",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjour,\n\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe suivant :\n\n%s\n\nVeuillez suivre ces instructions :\n\n1. Connectez-vous à l'interface web et trouvez la section \"Module de chiffrement de base d'ownCloud\" dans vos paramètres personnels;\n\n2. Entrez le mot de passe fourni ci-dessus dans le champ \"Ancien mot de passe de connexion\";\n\n3. Entrez le mot de passe que vous utilisez actuellement pour vous connecter dans le champ \"Actuel mot de passe de connexion\";\n\n4. Validez en cliquant sur le bouton \"Mettre à jour le mot de passe de votre clef privée\".\n",
"The share will expire on %s." : "Le partage expirera le %s.",
"Cheers!" : "À bientôt !",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjour,<br><br>L'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe <strong>%s</strong>.<br><br>\nVeuillez vous connecter dans l'interface web et aller dans la section \"Module de chiffrement de base d'ownCloud\" de vos paramètres personnels. De là, mettez à jour votre mot de passe de chiffrement en entrant le mot de passe fourni dans ce message dans le champ \"Ancien mot de passe de connexion\", et votre mot de passe de connexion actuel.<br><br>",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjour,\n<br><br>\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe suivant :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nVeuillez suivre ces instructions :\n<ol>\n<li>Connectez-vous à l'interface web et trouvez la section <em>\"Module de chiffrement de base d'ownCloud\"</em> dans vos paramètres personnels;</li>\n<li>Entrez le mot de passe fourni ci-dessus dans le champ <em>\"Ancien mot de passe de connexion\"</em>;</li>\n<li>Entrez le mot de passe que vous utilisez actuellement pour vous connecter dans le champ <em>\"Actuel mot de passe de connexion\"</em>;</li>\n<li>Validez en cliquant sur le bouton <em>\"Mettre à jour le mot de passe de votre clef privée\"</em>.</li>\n</ol>\n</p>",
"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 s'ils oublient leur mot de passe.",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index 3694682d8bc..54a7431db30 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -26,10 +26,10 @@
"one-time password for server-side-encryption" : "Mot de passe à usage unique pour le chiffrement côté serveur",
"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.",
"Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le repartager avec vous. ",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjour,\n\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe '%s'.\n\nVeuillez vous connecter dans l'interface web et aller dans la section \"Module de chiffrement de base d'ownCloud\" de vos paramètres personnels. De là, mettez à jour votre mot de passe de chiffrement en entrant le mot de passe fourni dans ce message dans le champ \"Ancien mot de passe de connexion\", et votre mot de passe de connexion actuel.\n",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'ownCloud basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjour,\n\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe suivant :\n\n%s\n\nVeuillez suivre ces instructions :\n\n1. Connectez-vous à l'interface web et trouvez la section \"Module de chiffrement de base d'ownCloud\" dans vos paramètres personnels;\n\n2. Entrez le mot de passe fourni ci-dessus dans le champ \"Ancien mot de passe de connexion\";\n\n3. Entrez le mot de passe que vous utilisez actuellement pour vous connecter dans le champ \"Actuel mot de passe de connexion\";\n\n4. Validez en cliquant sur le bouton \"Mettre à jour le mot de passe de votre clef privée\".\n",
"The share will expire on %s." : "Le partage expirera le %s.",
"Cheers!" : "À bientôt !",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjour,<br><br>L'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe <strong>%s</strong>.<br><br>\nVeuillez vous connecter dans l'interface web et aller dans la section \"Module de chiffrement de base d'ownCloud\" de vos paramètres personnels. De là, mettez à jour votre mot de passe de chiffrement en entrant le mot de passe fourni dans ce message dans le champ \"Ancien mot de passe de connexion\", et votre mot de passe de connexion actuel.<br><br>",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"ownCloud basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjour,\n<br><br>\nL'administrateur a activé le chiffrement sur le serveur. Vos fichiers ont été chiffrés avec le mot de passe suivant :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nVeuillez suivre ces instructions :\n<ol>\n<li>Connectez-vous à l'interface web et trouvez la section <em>\"Module de chiffrement de base d'ownCloud\"</em> dans vos paramètres personnels;</li>\n<li>Entrez le mot de passe fourni ci-dessus dans le champ <em>\"Ancien mot de passe de connexion\"</em>;</li>\n<li>Entrez le mot de passe que vous utilisez actuellement pour vous connecter dans le champ <em>\"Actuel mot de passe de connexion\"</em>;</li>\n<li>Validez en cliquant sur le bouton <em>\"Mettre à jour le mot de passe de votre clef privée\"</em>.</li>\n</ol>\n</p>",
"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 s'ils oublient leur mot de passe.",
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index d0a2cce1a86..4afd7193d5e 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -35,13 +35,15 @@
}
/* FILE TABLE */
-
#filestable {
position: relative;
- top: 44px;
width: 100%;
}
+#filestable.has-controls {
+ top: 44px;
+}
+
/* make sure there's enough room for the file actions */
#body-user #filestable {
min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 7c9ae01bffe..721ebb8c836 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -226,7 +226,11 @@
}
this.breadcrumb = new OCA.Files.BreadCrumb(breadcrumbOptions);
- this.$el.find('#controls').prepend(this.breadcrumb.$el);
+ var $controls = this.$el.find('#controls');
+ if ($controls.length > 0) {
+ $controls.prepend(this.breadcrumb.$el);
+ this.$table.addClass('has-controls');
+ }
this._renderNewButton();
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 296efe6381d..ecd57e49845 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Invalid directory." : "Dosje e pavlefshme",
"Files" : "Skedarë",
"All files" : "Të gjithë",
+ "Favorites" : "Të parapëlqyer",
"Home" : "Shtëpi",
"Close" : "Mbyll",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nuk mund të ngarkohet {filename} sepse është dosje ose ka 0 byte",
@@ -35,9 +36,11 @@ OC.L10N.register(
"Upload cancelled." : "Ngarkimi u anullua",
"Could not get result from server." : "Nuk mund të merret ndonjë rezultat nga serveri.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Skedari duke u ngarkuar. Largimi nga faqja do të anullojë ngarkimin",
+ "Actions" : "Veprime",
"Download" : "Shkarko",
"Rename" : "Riemëro",
"Delete" : "Fshi",
+ "Details" : "Hollësi",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
"Error moving file" : "Gabim lëvizjen dokumentave",
@@ -60,6 +63,7 @@ OC.L10N.register(
"File name cannot be empty." : "Emri i skedarit nuk mund të jetë bosh.",
"Your storage is full, files can not be updated or synced anymore!" : "Hapsira juaj e arkivimit është plot, skedarët nuk mund të përditësohen ose sinkronizohen!",
"Your storage is almost full ({usedSpacePercent}%)" : "Hapsira juaj e arkivimit është pothuajse në fund ({usedSpacePercent}%)",
+ "Favorite" : "Vëre te Të parapëlqyerit",
"Upload" : "Ngarko",
"Text file" : "Skedar tekst",
"Folder" : "Dosje",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 993e38f4644..6ee53a59b4a 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -25,6 +25,7 @@
"Invalid directory." : "Dosje e pavlefshme",
"Files" : "Skedarë",
"All files" : "Të gjithë",
+ "Favorites" : "Të parapëlqyer",
"Home" : "Shtëpi",
"Close" : "Mbyll",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Nuk mund të ngarkohet {filename} sepse është dosje ose ka 0 byte",
@@ -33,9 +34,11 @@
"Upload cancelled." : "Ngarkimi u anullua",
"Could not get result from server." : "Nuk mund të merret ndonjë rezultat nga serveri.",
"File upload is in progress. Leaving the page now will cancel the upload." : "Skedari duke u ngarkuar. Largimi nga faqja do të anullojë ngarkimin",
+ "Actions" : "Veprime",
"Download" : "Shkarko",
"Rename" : "Riemëro",
"Delete" : "Fshi",
+ "Details" : "Hollësi",
"Pending" : "Në vijim",
"Error moving file." : "Gabim në lëvizjen e skedarëve.",
"Error moving file" : "Gabim lëvizjen dokumentave",
@@ -58,6 +61,7 @@
"File name cannot be empty." : "Emri i skedarit nuk mund të jetë bosh.",
"Your storage is full, files can not be updated or synced anymore!" : "Hapsira juaj e arkivimit është plot, skedarët nuk mund të përditësohen ose sinkronizohen!",
"Your storage is almost full ({usedSpacePercent}%)" : "Hapsira juaj e arkivimit është pothuajse në fund ({usedSpacePercent}%)",
+ "Favorite" : "Vëre te Të parapëlqyerit",
"Upload" : "Ngarko",
"Text file" : "Skedar tekst",
"Folder" : "Dosje",
diff --git a/apps/files/templates/simplelist.php b/apps/files/templates/simplelist.php
index 6b6c018024f..ca26d9b5d5b 100644
--- a/apps/files/templates/simplelist.php
+++ b/apps/files/templates/simplelist.php
@@ -1,6 +1,3 @@
-<div id="controls">
- <div id="file_action_panel"></div>
-</div>
<div id='notification'></div>
<div id="emptycontent" class="hidden">
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 464508ad298..fb95a24deac 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -35,7 +35,7 @@ OC.L10N.register(
"Saved" : "Sauvegardé",
"Access key" : "Clé d'accès",
"Secret key" : "Clé secrète",
- "Builtin" : "Inclus",
+ "Builtin" : "Intégré",
"None" : "Aucun",
"OAuth1" : "OAuth1",
"App key" : "App key",
@@ -71,7 +71,7 @@ OC.L10N.register(
"Location" : "Emplacement",
"ownCloud" : "ownCloud",
"SFTP" : "SFTP",
- "Root" : "Root",
+ "Root" : "Racine",
"SFTP with secret key login" : "SFTP avec identification par clé",
"SMB / CIFS" : "SMB / CIFS",
"Share" : "Partage",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 993ea0b95f4..15f422dd3fc 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -33,7 +33,7 @@
"Saved" : "Sauvegardé",
"Access key" : "Clé d'accès",
"Secret key" : "Clé secrète",
- "Builtin" : "Inclus",
+ "Builtin" : "Intégré",
"None" : "Aucun",
"OAuth1" : "OAuth1",
"App key" : "App key",
@@ -69,7 +69,7 @@
"Location" : "Emplacement",
"ownCloud" : "ownCloud",
"SFTP" : "SFTP",
- "Root" : "Root",
+ "Root" : "Racine",
"SFTP with secret key login" : "SFTP avec identification par clé",
"SMB / CIFS" : "SMB / CIFS",
"Share" : "Partage",
diff --git a/apps/files_external/l10n/sq.js b/apps/files_external/l10n/sq.js
index 61262e8c8b1..6370486b1b4 100644
--- a/apps/files_external/l10n/sq.js
+++ b/apps/files_external/l10n/sq.js
@@ -2,17 +2,22 @@ OC.L10N.register(
"files_external",
{
"Personal" : "Personale",
+ "Enable encryption" : "Aktivizoni fshehtëzim",
"Saved" : "U ruajt",
"None" : "Asgjë",
"Username" : "Përdoruesi",
"Password" : "fjalëkalim",
+ "Public key" : "Kyç publik",
"Port" : "Porta",
"WebDAV" : "WebDAV",
"URL" : "URL-i",
+ "Dropbox" : "Dropbox",
"Host" : "Pritësi",
"Location" : "Vendndodhja",
+ "ownCloud" : "ownCloud",
"Share" : "Ndaj",
"Name" : "Emri",
+ "External Storage" : "Depozitim i Jashtëm",
"Folder name" : "Emri i Skedarit",
"Delete" : "Elimino"
},
diff --git a/apps/files_external/l10n/sq.json b/apps/files_external/l10n/sq.json
index 20ebd508480..eecc60d7f67 100644
--- a/apps/files_external/l10n/sq.json
+++ b/apps/files_external/l10n/sq.json
@@ -1,16 +1,21 @@
{ "translations": {
"Personal" : "Personale",
+ "Enable encryption" : "Aktivizoni fshehtëzim",
"Saved" : "U ruajt",
"None" : "Asgjë",
"Username" : "Përdoruesi",
"Password" : "fjalëkalim",
+ "Public key" : "Kyç publik",
"Port" : "Porta",
"WebDAV" : "WebDAV",
"URL" : "URL-i",
+ "Dropbox" : "Dropbox",
"Host" : "Pritësi",
"Location" : "Vendndodhja",
+ "ownCloud" : "ownCloud",
"Share" : "Ndaj",
"Name" : "Emri",
+ "External Storage" : "Depozitim i Jashtëm",
"Folder name" : "Emri i Skedarit",
"Delete" : "Elimino"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index 141994d0050..d00d22765e3 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -26,7 +26,7 @@
<?php $checkboxId = uniqid("checkbox_"); ?>
<input type="checkbox"
id="<?php p($checkboxId); ?>"
- <?php if (!empty($classes)): ?> class="<?php p(implode(' ', $classes)); ?>"<?php endif; ?>
+ <?php if (!empty($classes)): ?> class="checkbox <?php p(implode(' ', $classes)); ?>"<?php endif; ?>
data-parameter="<?php p($parameter->getName()); ?>"
<?php if ($value === true): ?> checked="checked"<?php endif; ?>
/>
@@ -191,7 +191,7 @@
<?php if ($_['isAdminPage']): ?>
<br />
- <input type="checkbox" name="allowUserMounting" id="allowUserMounting"
+ <input type="checkbox" name="allowUserMounting" id="allowUserMounting" class="checkbox"
value="1" <?php if ($_['allowUserMounting'] == 'yes') print_unescaped(' checked="checked"'); ?> />
<label for="allowUserMounting"><?php p($l->t('Enable User External Storage')); ?></label> <span id="userMountingMsg" class="msg"></span>
@@ -201,7 +201,7 @@
<?php if ($deprecateTo = $backend->getDeprecateTo()): ?>
<input type="hidden" id="allowUserMountingBackends<?php p($i); ?>" name="allowUserMountingBackends[]" value="<?php p($backend->getIdentifier()); ?>" data-deprecate-to="<?php p($deprecateTo->getIdentifier()); ?>" />
<?php else: ?>
- <input type="checkbox" id="allowUserMountingBackends<?php p($i); ?>" name="allowUserMountingBackends[]" value="<?php p($backend->getIdentifier()); ?>" <?php if ($backend->isVisibleFor(BackendService::VISIBILITY_PERSONAL)) print_unescaped(' checked="checked"'); ?> />
+ <input type="checkbox" id="allowUserMountingBackends<?php p($i); ?>" class="checkbox" name="allowUserMountingBackends[]" value="<?php p($backend->getIdentifier()); ?>" <?php if ($backend->isVisibleFor(BackendService::VISIBILITY_PERSONAL)) print_unescaped(' checked="checked"'); ?> />
<label for="allowUserMountingBackends<?php p($i); ?>"><?php p($backend->getText()); ?></label> <br />
<?php endif; ?>
<?php $i++; ?>
diff --git a/apps/files_external/tests/service/userglobalstoragesservicetest.php b/apps/files_external/tests/service/userglobalstoragesservicetest.php
index 7c2516f0477..1b902b6eee5 100644
--- a/apps/files_external/tests/service/userglobalstoragesservicetest.php
+++ b/apps/files_external/tests/service/userglobalstoragesservicetest.php
@@ -155,8 +155,9 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
/**
* @expectedException \DomainException
+ * @dataProvider deleteStorageDataProvider
*/
- public function testDeleteStorage() {
+ public function testDeleteStorage($backendOptions, $rustyStorageId, $expectedCountAfterDeletion) {
$backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\SMB');
$authMechanism = $this->backendService->getAuthMechanism('identifier:\Auth\Mechanism');
@@ -164,7 +165,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$storage->setMountPoint('mountpoint');
$storage->setBackend($backend);
$storage->setAuthMechanism($authMechanism);
- $storage->setBackendOptions(['password' => 'testPassword']);
+ $storage->setBackendOptions($backendOptions);
$newStorage = $this->globalStoragesService->addStorage($storage);
$this->assertEquals(1, $newStorage->getId());
diff --git a/apps/files_sharing/api/server2server.php b/apps/files_sharing/api/server2server.php
index a74b329aed5..2e0468039b4 100644
--- a/apps/files_sharing/api/server2server.php
+++ b/apps/files_sharing/api/server2server.php
@@ -53,6 +53,7 @@ class Server2Server {
return new \OC_OCS_Result(null, 400, 'The mountpoint name contains invalid characters.');
}
+ // FIXME this should be a method in the user management instead
\OCP\Util::writeLog('files_sharing', 'shareWith before, ' . $shareWith, \OCP\Util::DEBUG);
\OCP\Util::emitHook(
'\OCA\Files_Sharing\API\Server2Server',
diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js
index c5933a0fa5e..ca2a67f1c9b 100644
--- a/apps/files_sharing/l10n/sq.js
+++ b/apps/files_sharing/l10n/sq.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"sharing is disabled" : "ndarja është çaktivizuar",
"For more info, please ask the person who sent this link." : "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.",
"Download" : "Shkarko",
- "Direct link" : "Lidhje direkte"
+ "Direct link" : "Lidhje direkte",
+ "Open documentation" : "Hapni dokumentimin"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json
index e7c43d75aca..8118f9033bd 100644
--- a/apps/files_sharing/l10n/sq.json
+++ b/apps/files_sharing/l10n/sq.json
@@ -19,6 +19,7 @@
"sharing is disabled" : "ndarja është çaktivizuar",
"For more info, please ask the person who sent this link." : "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.",
"Download" : "Shkarko",
- "Direct link" : "Lidhje direkte"
+ "Direct link" : "Lidhje direkte",
+ "Open documentation" : "Hapni dokumentimin"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/templates/list.php b/apps/files_sharing/templates/list.php
index 55ad55a0a4f..fa0365c749c 100644
--- a/apps/files_sharing/templates/list.php
+++ b/apps/files_sharing/templates/list.php
@@ -1,7 +1,4 @@
<?php /** @var $l OC_L10N */ ?>
-<div id="controls">
- <div id="file_action_panel"></div>
-</div>
<div id='notification'></div>
<div id="emptycontent" class="hidden"></div>
diff --git a/apps/files_sharing/templates/settings-admin.php b/apps/files_sharing/templates/settings-admin.php
index 376f2b71aee..31bfa78e67d 100644
--- a/apps/files_sharing/templates/settings-admin.php
+++ b/apps/files_sharing/templates/settings-admin.php
@@ -9,7 +9,7 @@
href="<?php p(link_to_docs('admin-sharing-federated')); ?>"></a>
<p>
- <input type="checkbox" name="outgoing_server2server_share_enabled" id="outgoingServer2serverShareEnabled"
+ <input type="checkbox" name="outgoing_server2server_share_enabled" id="outgoingServer2serverShareEnabled" class="checkbox"
value="1" <?php if ($_['outgoingServer2serverShareEnabled']) print_unescaped('checked="checked"'); ?> />
<label for="outgoingServer2serverShareEnabled">
<?php p($l->t('Allow users on this server to send shares to other servers'));?>
@@ -17,7 +17,7 @@
</p>
<p>
- <input type="checkbox" name="incoming_server2server_share_enabled" id="incomingServer2serverShareEnabled"
+ <input type="checkbox" name="incoming_server2server_share_enabled" id="incomingServer2serverShareEnabled" class="checkbox"
value="1" <?php if ($_['incomingServer2serverShareEnabled']) print_unescaped('checked="checked"'); ?> />
<label for="incomingServer2serverShareEnabled">
<?php p($l->t('Allow users on this server to receive shares from other servers'));?>
diff --git a/apps/files_trashbin/js/app.js b/apps/files_trashbin/js/app.js
index c3be762f095..807d5704be1 100644
--- a/apps/files_trashbin/js/app.js
+++ b/apps/files_trashbin/js/app.js
@@ -43,19 +43,27 @@ OCA.Trashbin.App = {
fileActions.setDefault('dir', 'Open');
- fileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename, context) {
- var fileList = context.fileList;
- var tr = fileList.findFileEl(filename);
- var deleteAction = tr.children("td.date").children(".action.delete");
- deleteAction.removeClass('icon-delete').addClass('icon-loading-small');
- fileList.disableActions();
- $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'), {
- files: JSON.stringify([filename]),
- dir: fileList.getCurrentDirectory()
- },
- _.bind(fileList._removeCallback, fileList)
- );
- }, t('files_trashbin', 'Restore'));
+ fileActions.registerAction({
+ name: 'Restore',
+ displayName: t('files_trashbin', 'Restore'),
+ type: OCA.Files.FileActions.TYPE_INLINE,
+ mime: 'all',
+ permissions: OC.PERMISSION_READ,
+ icon: OC.imagePath('core', 'actions/history'),
+ actionHandler: function(filename, context) {
+ var fileList = context.fileList;
+ var tr = fileList.findFileEl(filename);
+ var deleteAction = tr.children("td.date").children(".action.delete");
+ deleteAction.removeClass('icon-delete').addClass('icon-loading-small');
+ fileList.disableActions();
+ $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'), {
+ files: JSON.stringify([filename]),
+ dir: fileList.getCurrentDirectory()
+ },
+ _.bind(fileList._removeCallback, fileList)
+ );
+ }
+ });
fileActions.registerAction({
name: 'Delete',
diff --git a/apps/files_trashbin/l10n/sq.js b/apps/files_trashbin/l10n/sq.js
index be6182a94dd..dd16eaeb09f 100644
--- a/apps/files_trashbin/l10n/sq.js
+++ b/apps/files_trashbin/l10n/sq.js
@@ -5,11 +5,11 @@ OC.L10N.register(
"Couldn't restore %s" : "Nuk munda ta rivendos %s",
"Deleted files" : "Skedarë të fshirë ",
"Restore" : "Rivendos",
+ "Delete" : "Elimino",
"Delete permanently" : "Fshi përfundimisht",
"Error" : "Veprim i gabuar",
"restored" : "rivendosur",
"Name" : "Emri",
- "Deleted" : "Eliminuar",
- "Delete" : "Elimino"
+ "Deleted" : "Eliminuar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/sq.json b/apps/files_trashbin/l10n/sq.json
index 735fd8c86b1..fcc5ce08976 100644
--- a/apps/files_trashbin/l10n/sq.json
+++ b/apps/files_trashbin/l10n/sq.json
@@ -3,11 +3,11 @@
"Couldn't restore %s" : "Nuk munda ta rivendos %s",
"Deleted files" : "Skedarë të fshirë ",
"Restore" : "Rivendos",
+ "Delete" : "Elimino",
"Delete permanently" : "Fshi përfundimisht",
"Error" : "Veprim i gabuar",
"restored" : "rivendosur",
"Name" : "Emri",
- "Deleted" : "Eliminuar",
- "Delete" : "Elimino"
+ "Deleted" : "Eliminuar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 97ed8fa91ac..cf58e5b902d 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -247,7 +247,7 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
if(empty($result)) {
return false;
}
- $dn = $result[0];
+ $dn = $result[0]['dn'][0];
//and now the group name
//NOTE once we have separate ownCloud group IDs and group names we can
@@ -491,7 +491,7 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
array($this->access->connection->ldapGroupDisplayName, 'dn'));
if (is_array($groups)) {
foreach ($groups as $groupobj) {
- $groupDN = $groupobj['dn'];
+ $groupDN = $groupobj['dn'][0];
$allGroups[$groupDN] = $groupobj;
$nestedGroups = $this->access->connection->ldapNestedGroups;
if (!empty($nestedGroups)) {
@@ -653,7 +653,7 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
str_replace('%uid', $member, $this->access->connection->ldapLoginFilter),
$this->access->getFilterPartForUserSearch($search)
));
- $ldap_users = $this->access->fetchListOfUsers($filter, 'dn');
+ $ldap_users = $this->access->fetchListOfUsers($filter, 'dn', 1);
if(count($ldap_users) < 1) {
continue;
}
diff --git a/apps/user_ldap/l10n/sq.js b/apps/user_ldap/l10n/sq.js
index 48ec0616b0e..72ff0b9f31f 100644
--- a/apps/user_ldap/l10n/sq.js
+++ b/apps/user_ldap/l10n/sq.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Failed to delete the server configuration" : "dështoi fshirjen e konfigurimit të serverit",
"The configuration is valid and the connection could be established!" : "Konfigurimi është i vlefshem dhe lidhja mund të kryhet",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurimi është i saktë por lidhja dështoi. Kontrolloni konfigurimete serverit dhe kredencialet.",
+ "Select groups" : "Përzgjidhni grupe",
"Do you really want to delete the current Server Configuration?" : "Jeni vërtetë të sigurt të fshini konfigurimet aktuale të serverit?",
"Confirm Deletion" : "Konfirmoni Fshirjen",
"Users" : "Përdoruesit",
diff --git a/apps/user_ldap/l10n/sq.json b/apps/user_ldap/l10n/sq.json
index 595aee41fad..a38ce28b016 100644
--- a/apps/user_ldap/l10n/sq.json
+++ b/apps/user_ldap/l10n/sq.json
@@ -3,6 +3,7 @@
"Failed to delete the server configuration" : "dështoi fshirjen e konfigurimit të serverit",
"The configuration is valid and the connection could be established!" : "Konfigurimi është i vlefshem dhe lidhja mund të kryhet",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurimi është i saktë por lidhja dështoi. Kontrolloni konfigurimete serverit dhe kredencialet.",
+ "Select groups" : "Përzgjidhni grupe",
"Do you really want to delete the current Server Configuration?" : "Jeni vërtetë të sigurt të fshini konfigurimet aktuale të serverit?",
"Confirm Deletion" : "Konfirmoni Fshirjen",
"Users" : "Përdoruesit",
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index 0707b95013c..32472c13b03 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -489,7 +489,7 @@ class Access extends LDAPUtility implements user\IUserTools {
/**
* gives back the user names as they are used ownClod internally
- * @param array $ldapUsers an array with the ldap Users result in style of array ( array ('dn' => foo, 'uid' => bar), ... )
+ * @param array $ldapUsers as returned by fetchList()
* @return array an array with the user names to use in ownCloud
*
* gives back the user names as they are used ownClod internally
@@ -500,7 +500,7 @@ class Access extends LDAPUtility implements user\IUserTools {
/**
* gives back the group names as they are used ownClod internally
- * @param array $ldapGroups an array with the ldap Groups result in style of array ( array ('dn' => foo, 'cn' => bar), ... )
+ * @param array $ldapGroups as returned by fetchList()
* @return array an array with the group names to use in ownCloud
*
* gives back the group names as they are used ownClod internally
@@ -510,7 +510,7 @@ class Access extends LDAPUtility implements user\IUserTools {
}
/**
- * @param array $ldapObjects
+ * @param array $ldapObjects as returned by fetchList()
* @param bool $isUsers
* @return array
*/
@@ -523,15 +523,25 @@ class Access extends LDAPUtility implements user\IUserTools {
$ownCloudNames = array();
foreach($ldapObjects as $ldapObject) {
- $nameByLDAP = isset($ldapObject[$nameAttribute]) ? $ldapObject[$nameAttribute] : null;
- $ocName = $this->dn2ocname($ldapObject['dn'], $nameByLDAP, $isUsers);
+ $nameByLDAP = null;
+ if( isset($ldapObject[$nameAttribute])
+ && is_array($ldapObject[$nameAttribute])
+ && isset($ldapObject[$nameAttribute][0])
+ ) {
+ // might be set, but not necessarily. if so, we use it.
+ $nameByLDAP = $ldapObject[$nameAttribute][0];
+ }
+
+ $ocName = $this->dn2ocname($ldapObject['dn'][0], $nameByLDAP, $isUsers);
if($ocName) {
$ownCloudNames[] = $ocName;
if($isUsers) {
//cache the user names so it does not need to be retrieved
//again later (e.g. sharing dialogue).
$this->cacheUserExists($ocName);
- $this->cacheUserDisplayName($ocName, $nameByLDAP);
+ if(!is_null($nameByLDAP)) {
+ $this->cacheUserDisplayName($ocName, $nameByLDAP);
+ }
}
}
continue;
@@ -682,7 +692,7 @@ class Access extends LDAPUtility implements user\IUserTools {
*/
public function batchApplyUserAttributes(array $ldapRecords){
foreach($ldapRecords as $userRecord) {
- $ocName = $this->dn2ocname($userRecord['dn'], $userRecord[$this->connection->ldapUserDisplayName]);
+ $ocName = $this->dn2ocname($userRecord['dn'][0], $userRecord[$this->connection->ldapUserDisplayName]);
$this->cacheUserExists($ocName);
$user = $this->userManager->get($ocName);
$user->processAttributes($userRecord);
@@ -710,6 +720,11 @@ class Access extends LDAPUtility implements user\IUserTools {
if($manyAttributes) {
return $list;
} else {
+ $list = array_reduce($list, function($carry, $item) {
+ $attribute = array_keys($item)[0];
+ $carry[] = $item[$attribute][0];
+ return $carry;
+ }, array());
return array_unique($list, SORT_LOCALE_STRING);
}
}
@@ -982,44 +997,29 @@ class Access extends LDAPUtility implements user\IUserTools {
if(!is_null($attr)) {
$selection = array();
- $multiArray = false;
- if(count($attr) > 1) {
- $multiArray = true;
- $i = 0;
- }
+ $i = 0;
foreach($findings as $item) {
if(!is_array($item)) {
continue;
}
$item = \OCP\Util::mb_array_change_key_case($item, MB_CASE_LOWER, 'UTF-8');
-
- if($multiArray) {
- foreach($attr as $key) {
- $key = mb_strtolower($key, 'UTF-8');
- if(isset($item[$key])) {
- if($key !== 'dn') {
- $selection[$i][$key] = $this->resemblesDN($key) ?
- $this->sanitizeDN($item[$key][0])
- : $item[$key][0];
- } else {
- $selection[$i][$key] = $this->sanitizeDN($item[$key]);
- }
- }
-
- }
- $i++;
- } else {
- //tribute to case insensitivity
- $key = mb_strtolower($attr[0], 'UTF-8');
-
+ foreach($attr as $key) {
+ $key = mb_strtolower($key, 'UTF-8');
if(isset($item[$key])) {
- if($this->resemblesDN($key)) {
- $selection[] = $this->sanitizeDN($item[$key]);
+ if(is_array($item[$key]) && isset($item[$key]['count'])) {
+ unset($item[$key]['count']);
+ }
+ if($key !== 'dn') {
+ $selection[$i][$key] = $this->resemblesDN($key) ?
+ $this->sanitizeDN($item[$key])
+ : $item[$key];
} else {
- $selection[] = $item[$key];
+ $selection[$i][$key] = [$this->sanitizeDN($item[$key])];
}
}
+
}
+ $i++;
}
$findings = $selection;
}
diff --git a/apps/user_ldap/lib/user/user.php b/apps/user_ldap/lib/user/user.php
index 6498cdf913f..d8148035d3f 100644
--- a/apps/user_ldap/lib/user/user.php
+++ b/apps/user_ldap/lib/user/user.php
@@ -147,21 +147,21 @@ class User {
//Quota
$attr = strtolower($this->connection->ldapQuotaAttribute);
if(isset($ldapEntry[$attr])) {
- $this->updateQuota($ldapEntry[$attr]);
+ $this->updateQuota($ldapEntry[$attr][0]);
}
unset($attr);
//Email
$attr = strtolower($this->connection->ldapEmailAttribute);
if(isset($ldapEntry[$attr])) {
- $this->updateEmail($ldapEntry[$attr]);
+ $this->updateEmail($ldapEntry[$attr][0]);
}
unset($attr);
//displayName
$attr = strtolower($this->connection->ldapUserDisplayName);
if(isset($ldapEntry[$attr])) {
- $displayName = $ldapEntry[$attr];
+ $displayName = $ldapEntry[$attr][0];
if(!empty($displayName)) {
$this->storeDisplayName($displayName);
$this->access->cacheUserDisplayName($this->getUsername(), $displayName);
@@ -171,18 +171,20 @@ class User {
// LDAP Username, needed for s2s sharing
if(isset($ldapEntry['uid'])) {
- $this->storeLDAPUserName($ldapEntry['uid']);
+ $this->storeLDAPUserName($ldapEntry['uid'][0]);
} else if(isset($ldapEntry['samaccountname'])) {
- $this->storeLDAPUserName($ldapEntry['samaccountname']);
+ $this->storeLDAPUserName($ldapEntry['samaccountname'][0]);
}
+
//homePath
if(strpos($this->connection->homeFolderNamingRule, 'attr:') === 0) {
$attr = strtolower(substr($this->connection->homeFolderNamingRule, strlen('attr:')));
if(isset($ldapEntry[$attr])) {
$this->access->cacheUserHome(
- $this->getUsername(), $this->getHomePath($ldapEntry[$attr]));
+ $this->getUsername(), $this->getHomePath($ldapEntry[$attr][0]));
}
}
+
//memberOf groups
$cacheKey = 'getMemberOf'.$this->getUsername();
$groups = false;
@@ -190,11 +192,12 @@ class User {
$groups = $ldapEntry['memberof'];
}
$this->connection->writeToCache($cacheKey, $groups);
+
//Avatar
$attrs = array('jpegphoto', 'thumbnailphoto');
foreach ($attrs as $attr) {
if(isset($ldapEntry[$attr])) {
- $this->avatarImage = $ldapEntry[$attr];
+ $this->avatarImage = $ldapEntry[$attr][0];
$this->updateAvatar();
break;
}
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 84a1225d6ec..a819b2e0e46 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -435,7 +435,11 @@ class Wizard extends LDAPUtility {
// detection will fail later
$result = $this->access->searchGroups($filter, array('cn', 'dn'), $limit, $offset);
foreach($result as $item) {
- $groupNames[] = $item['cn'];
+ if(!isset($item['cn']) && !is_array($item['cn']) && !isset($item['cn'][0])) {
+ // just in case - no issue known
+ continue;
+ }
+ $groupNames[] = $item['cn'][0];
$groupEntries[] = $item;
}
$offset += $limit;
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php
index 132fbfdf687..8ed2bc5c677 100644
--- a/apps/user_ldap/tests/group_ldap.php
+++ b/apps/user_ldap/tests/group_ldap.php
@@ -145,7 +145,7 @@ class Test_Group_Ldap extends \Test\TestCase {
$access->expects($this->once())
->method('searchGroups')
- ->will($this->returnValue(array('cn=foo,dc=barfoo,dc=bar')));
+ ->will($this->returnValue([['dn' => ['cn=foo,dc=barfoo,dc=bar']]]));
$access->expects($this->once())
->method('dn2groupname')
@@ -221,7 +221,7 @@ class Test_Group_Ldap extends \Test\TestCase {
$access->expects($this->once())
->method('searchGroups')
- ->will($this->returnValue(array('cn=foo,dc=barfoo,dc=bar')));
+ ->will($this->returnValue([['dn' => ['cn=foo,dc=barfoo,dc=bar']]]));
$access->expects($this->once())
->method('dn2groupname')
diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php
index 69a76c0b7ac..0f70c43fc11 100644
--- a/apps/user_ldap/tests/user_ldap.php
+++ b/apps/user_ldap/tests/user_ldap.php
@@ -124,7 +124,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
->method('fetchListOfUsers')
->will($this->returnCallback(function($filter) {
if($filter === 'roland') {
- return array(array('dn' => 'dnOfRoland,dc=test'));
+ return array(array('dn' => ['dnOfRoland,dc=test']));
}
return array();
}));
@@ -133,7 +133,7 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
->method('fetchUsersByLoginName')
->will($this->returnCallback(function($uid) {
if($uid === 'roland') {
- return array(array('dn' => 'dnOfRoland,dc=test'));
+ return array(array('dn' => ['dnOfRoland,dc=test']));
}
return array();
}));
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 59c61524c9b..fc8ce361637 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -78,7 +78,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
public function loginName2UserName($loginName) {
try {
$ldapRecord = $this->getLDAPUserByLoginName($loginName);
- $user = $this->access->userManager->get($ldapRecord['dn']);
+ $user = $this->access->userManager->get($ldapRecord['dn'][0]);
if($user instanceof OfflineUser) {
return false;
}
@@ -119,7 +119,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
} catch(\Exception $e) {
return false;
}
- $dn = $ldapRecord['dn'];
+ $dn = $ldapRecord['dn'][0];
$user = $this->access->userManager->get($dn);
if(!$user instanceof User) {