summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/ajax/upload.php2
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/js/files.js24
-rw-r--r--apps/files/l10n/el.php1
-rw-r--r--apps/files/l10n/et_EE.php1
-rw-r--r--apps/files/l10n/gl.php32
-rw-r--r--apps/files/l10n/ja_JP.php2
-rw-r--r--apps/files/l10n/ko.php18
-rw-r--r--apps/files/l10n/lv.php9
-rw-r--r--apps/files/l10n/sl.php7
-rw-r--r--apps/files/l10n/th_TH.php1
-rw-r--r--apps/files/l10n/uk.php21
-rw-r--r--apps/files/l10n/vi.php12
-rw-r--r--apps/files/l10n/zh_CN.php1
-rw-r--r--apps/files_encryption/l10n/fa.php1
-rw-r--r--apps/files_encryption/l10n/gl.php6
-rw-r--r--apps/files_encryption/l10n/ko.php6
-rw-r--r--apps/files_encryption/l10n/ta_LK.php6
-rw-r--r--apps/files_encryption/l10n/vi.php2
-rw-r--r--apps/files_external/l10n/gl.php18
-rw-r--r--apps/files_external/l10n/ko.php24
-rw-r--r--apps/files_external/l10n/uk.php20
-rw-r--r--apps/files_sharing/l10n/gl.php4
-rw-r--r--apps/files_sharing/l10n/ko.php9
-rw-r--r--apps/files_sharing/l10n/ta_LK.php9
-rw-r--r--apps/files_sharing/l10n/uk.php7
-rw-r--r--apps/files_sharing/l10n/vi.php4
-rw-r--r--apps/files_sharing/templates/public.php8
-rw-r--r--apps/files_versions/l10n/gl.php7
-rw-r--r--apps/files_versions/l10n/ko.php8
-rw-r--r--apps/files_versions/l10n/ru_RU.php2
-rw-r--r--apps/files_versions/l10n/ta_LK.php8
-rw-r--r--apps/files_versions/l10n/vi.php6
-rw-r--r--apps/user_ldap/appinfo/update.php37
-rw-r--r--apps/user_ldap/appinfo/version2
-rw-r--r--apps/user_ldap/l10n/gl.php37
-rw-r--r--apps/user_ldap/l10n/ko.php33
-rw-r--r--apps/user_ldap/l10n/ta_LK.php27
-rw-r--r--apps/user_ldap/lib/access.php25
-rw-r--r--apps/user_webdavauth/l10n/gl.php3
-rw-r--r--apps/user_webdavauth/l10n/ko.php3
-rw-r--r--apps/user_webdavauth/l10n/sl.php3
-rw-r--r--apps/user_webdavauth/l10n/ta_LK.php3
-rw-r--r--apps/user_webdavauth/l10n/th_TH.php3
-rw-r--r--apps/user_webdavauth/l10n/uk.php3
-rw-r--r--apps/user_webdavauth/l10n/zh_CN.php3
-rwxr-xr-xapps/user_webdavauth/user_webdavauth.php2
47 files changed, 422 insertions, 52 deletions
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 4ed0bbc5b0f..c3d3199a003 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -48,6 +48,8 @@ if(strpos($dir, '..') === false) {
$fileCount=count($files['name']);
for($i=0;$i<$fileCount;$i++) {
$target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]);
+ // $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
+ $target = OC_Filesystem::normalizePath($target);
if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) {
$meta = OC_FileCache::get($target);
$id = OC_FileCache::getId($target);
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index ac2e0d63588..a5550dc9926 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -141,7 +141,7 @@ var FileList={
tr=$('tr').filterAttr('data-file',name);
tr.data('renaming',true);
td=tr.children('td.filename');
- input=$('<input class="filename"></input>').val(name);
+ input=$('<input class="filename"/>').val(name);
form=$('<form></form>');
form.append(input);
td.children('a.name').hide();
@@ -160,11 +160,11 @@ var FileList={
OC.dialogs.alert(result.data.message, 'Error moving file');
newname = name;
}
- tr.data('renaming',false);
});
}
}
+ tr.data('renaming',false);
tr.attr('data-file', newname);
var path = td.children('a.name').attr('href');
td.children('a.name').attr('href', path.replace(encodeURIComponent(name), encodeURIComponent(newname)));
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 982351c589e..2b250e0c7c5 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -228,7 +228,12 @@ $(document).ready(function() {
}
});
}else{
- var date=new Date();
+ var dropTarget = $(e.originalEvent.target).closest('tr');
+ if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
+ var dirName = dropTarget.attr('data-file')
+ }
+
+ var date=new Date();
if(files){
for(var i=0;i<files.length;i++){
if(files[i].size>0){
@@ -281,7 +286,10 @@ $(document).ready(function() {
var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i],
formData: function(form) {
var formArray = form.serializeArray();
- formArray[1]['value'] = dirName;
+ // array index 0 contains the max files size
+ // array index 1 contains the request token
+ // array index 2 contains the directory
+ formArray[2]['value'] = dirName;
return formArray;
}}).success(function(result, textStatus, jqXHR) {
var response;
@@ -291,7 +299,13 @@ $(document).ready(function() {
$('#notification').fadeIn();
}
var file=response[0];
+ // TODO: this doesn't work if the file name has been changed server side
delete uploadingFiles[dirName][file.name];
+ if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
+ delete uploadingFiles[dirName];
+ }
+
+ var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext')
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
currentUploads -= 1;
uploadtext.attr('currentUploads', currentUploads);
@@ -495,6 +509,10 @@ $(document).ready(function() {
$('#notification').text(t('files','Invalid name, \'/\' is not allowed.'));
$('#notification').fadeIn();
return;
+ } else if( type == 'folder' && $('#dir').val() == '/' && $(this).val() == 'Shared') {
+ $('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud'));
+ $('#notification').fadeIn();
+ return;
}
var name = getUniqueName($(this).val());
if (name != $(this).val()) {
@@ -821,7 +839,7 @@ function getSelectedFiles(property){
name:$(element).attr('data-file'),
mime:$(element).data('mime'),
type:$(element).data('type'),
- size:$(element).data('size'),
+ size:$(element).data('size')
};
if(property){
files.push(file[property]);
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index 49742dfb3db..920ddf57591 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -49,6 +49,7 @@
"New" => "Νέο",
"Text file" => "Αρχείο κειμένου",
"Folder" => "Φάκελος",
+"From link" => "Από σύνδεσμο",
"Upload" => "Αποστολή",
"Cancel upload" => "Ακύρωση αποστολής",
"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!",
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index fedb8b5736c..73d5a286a9b 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -49,6 +49,7 @@
"New" => "Uus",
"Text file" => "Tekstifail",
"Folder" => "Kaust",
+"From link" => "Allikast",
"Upload" => "Lae üles",
"Cancel upload" => "Tühista üleslaadimine",
"Nothing in here. Upload something!" => "Siin pole midagi. Lae midagi üles!",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index b049f3b2f33..a93920463a1 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -1,5 +1,5 @@
<?php $TRANSLATIONS = array(
-"There is no error, the file uploaded with success" => "Non hai erros, o ficheiro enviouse correctamente",
+"There is no error, the file uploaded with success" => "Non hai erros. O ficheiro enviouse correctamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" => "O ficheiro enviado supera a directiva upload_max_filesize no php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado supera a directiva MAX_FILE_SIZE que foi indicada no formulario HTML",
"The uploaded file was only partially uploaded" => "O ficheiro enviado foi só parcialmente enviado",
@@ -9,26 +9,39 @@
"Files" => "Ficheiros",
"Unshare" => "Deixar de compartir",
"Delete" => "Eliminar",
+"Rename" => "Mudar o nome",
+"{new_name} already exists" => "xa existe un {new_name}",
"replace" => "substituír",
-"suggest name" => "suxira nome",
+"suggest name" => "suxerir nome",
"cancel" => "cancelar",
+"replaced {new_name}" => "substituír {new_name}",
"undo" => "desfacer",
-"generating ZIP-file, it may take some time." => "xerando ficheiro ZIP, pode levar un anaco.",
+"replaced {new_name} with {old_name}" => "substituír {new_name} polo {old_name}",
+"unshared {files}" => "{files} sen compartir",
+"deleted {files}" => "{files} eliminados",
+"generating ZIP-file, it may take some time." => "xerando un ficheiro ZIP, o que pode levar un anaco.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes",
"Upload Error" => "Erro na subida",
"Close" => "Pechar",
"Pending" => "Pendentes",
+"1 file uploading" => "1 ficheiro subíndose",
+"{count} files uploading" => "{count} ficheiros subíndose",
"Upload cancelled." => "Subida cancelada.",
"File upload is in progress. Leaving the page now will cancel the upload." => "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida.",
"Invalid name, '/' is not allowed." => "Nome non válido, '/' non está permitido.",
-"error while scanning" => "erro mentras analizaba",
+"{count} files scanned" => "{count} ficheiros escaneados",
+"error while scanning" => "erro mentres analizaba",
"Name" => "Nome",
"Size" => "Tamaño",
"Modified" => "Modificado",
+"1 folder" => "1 cartafol",
+"{count} folders" => "{count} cartafoles",
+"1 file" => "1 ficheiro",
+"{count} files" => "{count} ficheiros",
"File handling" => "Manexo de ficheiro",
"Maximum upload size" => "Tamaño máximo de envío",
"max. possible: " => "máx. posible: ",
-"Needed for multi-file and folder downloads." => "Preciso para descarga de varios ficheiros e cartafoles.",
+"Needed for multi-file and folder downloads." => "Precísase para a descarga de varios ficheiros e cartafoles.",
"Enable ZIP-download" => "Habilitar a descarga-ZIP",
"0 is unlimited" => "0 significa ilimitado",
"Maximum input size for ZIP files" => "Tamaño máximo de descarga para os ZIP",
@@ -36,13 +49,14 @@
"New" => "Novo",
"Text file" => "Ficheiro de texto",
"Folder" => "Cartafol",
+"From link" => "Dende a ligazón",
"Upload" => "Enviar",
-"Cancel upload" => "Cancelar subida",
-"Nothing in here. Upload something!" => "Nada por aquí. Envíe algo.",
+"Cancel upload" => "Cancelar a subida",
+"Nothing in here. Upload something!" => "Nada por aquí. Envía algo.",
"Share" => "Compartir",
"Download" => "Descargar",
"Upload too large" => "Envío demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Os ficheiros que trata de subir superan o tamaño máximo permitido neste servidor",
-"Files are being scanned, please wait." => "Estanse analizando os ficheiros, espere por favor.",
-"Current scanning" => "Análise actual."
+"Files are being scanned, please wait." => "Estanse analizando os ficheiros. Agarda.",
+"Current scanning" => "Análise actual"
);
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index b97975b8ef7..c4c78545a79 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -20,7 +20,7 @@
"unshared {files}" => "未共有 {files}",
"deleted {files}" => "削除 {files}",
"generating ZIP-file, it may take some time." => "ZIPファイルを生成中です、しばらくお待ちください。",
-"Unable to upload your file as it is a directory or has 0 bytes" => "アップロード使用としているファイルがディレクトリ、もしくはサイズが0バイトのため、アップロードできません。",
+"Unable to upload your file as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのファイルはアップロードできません",
"Upload Error" => "アップロードエラー",
"Close" => "閉じる",
"Pending" => "保留",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 110dea7a8b5..b604740c773 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -7,20 +7,37 @@
"Missing a temporary folder" => "임시 폴더가 사라짐",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Files" => "파일",
+"Unshare" => "공유해제",
"Delete" => "삭제",
+"Rename" => "이름변경",
+"{new_name} already exists" => "{new_name} 이미 존재함",
"replace" => "대체",
+"suggest name" => "이름을 제안",
"cancel" => "취소",
+"replaced {new_name}" => "{new_name} 으로 대체",
"undo" => "복구",
+"replaced {new_name} with {old_name}" => "{old_name}이 {new_name}으로 대체됨",
+"unshared {files}" => "{files} 공유해제",
+"deleted {files}" => "{files} 삭제됨",
"generating ZIP-file, it may take some time." => "ZIP파일 생성에 시간이 걸릴 수 있습니다.",
"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉토리이거나 0 바이트이기 때문에 업로드 할 수 없습니다.",
"Upload Error" => "업로드 에러",
"Close" => "닫기",
"Pending" => "보류 중",
+"1 file uploading" => "1 파일 업로드중",
+"{count} files uploading" => "{count} 파일 업로드중",
"Upload cancelled." => "업로드 취소.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드을 진행합니다. 페이지를 떠나게 될경우 업로드가 취소됩니다.",
"Invalid name, '/' is not allowed." => "잘못된 이름, '/' 은 허용이 되지 않습니다.",
+"{count} files scanned" => "{count} 파일 스캔되었습니다.",
+"error while scanning" => "스캔하는 도중 에러",
"Name" => "이름",
"Size" => "크기",
"Modified" => "수정됨",
+"1 folder" => "1 폴더",
+"{count} folders" => "{count} 폴더",
+"1 file" => "1 파일",
+"{count} files" => "{count} 파일",
"File handling" => "파일 처리",
"Maximum upload size" => "최대 업로드 크기",
"max. possible: " => "최대. 가능한:",
@@ -32,6 +49,7 @@
"New" => "새로 만들기",
"Text file" => "텍스트 파일",
"Folder" => "폴더",
+"From link" => "From link",
"Upload" => "업로드",
"Cancel upload" => "업로드 취소",
"Nothing in here. Upload something!" => "내용이 없습니다. 업로드할 수 있습니다!",
diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php
index 6488ee534ec..24b46f53316 100644
--- a/apps/files/l10n/lv.php
+++ b/apps/files/l10n/lv.php
@@ -1,10 +1,14 @@
<?php $TRANSLATIONS = array(
+"There is no error, the file uploaded with success" => "Viss kārtībā, augšupielāde veiksmīga",
"No file was uploaded" => "Neviens fails netika augšuplādēts",
+"Missing a temporary folder" => "Trūkst pagaidu mapes",
"Failed to write to disk" => "Nav iespējams saglabāt",
"Files" => "Faili",
"Unshare" => "Pārtraukt līdzdalīšanu",
"Delete" => "Izdzēst",
+"Rename" => "Pārdēvēt",
"replace" => "aizvietot",
+"suggest name" => "Ieteiktais nosaukums",
"cancel" => "atcelt",
"undo" => "vienu soli atpakaļ",
"generating ZIP-file, it may take some time." => "lai uzģenerētu ZIP failu, kāds brīdis ir jāpagaida",
@@ -12,14 +16,18 @@
"Upload Error" => "Augšuplādēšanas laikā radās kļūda",
"Pending" => "Gaida savu kārtu",
"Upload cancelled." => "Augšuplāde ir atcelta",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde.",
"Invalid name, '/' is not allowed." => "Šis simbols '/', nav atļauts.",
"Name" => "Nosaukums",
"Size" => "Izmērs",
"Modified" => "Izmainīts",
+"File handling" => "Failu pārvaldība",
"Maximum upload size" => "Maksimālais failu augšuplādes apjoms",
"max. possible: " => "maksīmālais iespējamais:",
+"Needed for multi-file and folder downloads." => "Vajadzīgs vairāku failu un mapju lejuplādei",
"Enable ZIP-download" => "Iespējot ZIP lejuplādi",
"0 is unlimited" => "0 ir neierobežots",
+"Save" => "Saglabāt",
"New" => "Jauns",
"Text file" => "Teksta fails",
"Folder" => "Mape",
@@ -29,6 +37,7 @@
"Share" => "Līdzdalīt",
"Download" => "Lejuplādēt",
"Upload too large" => "Fails ir par lielu lai to augšuplādetu",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Jūsu augšuplādējamie faili pārsniedz servera pieļaujamo failu augšupielādes apjomu",
"Files are being scanned, please wait." => "Faili šobrīd tiek caurskatīti, nedaudz jāpagaida.",
"Current scanning" => "Šobrīd tiek pārbaudīti"
);
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index bf4cfa1ea3a..3e9a3b117ea 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -17,21 +17,27 @@
"replaced {new_name}" => "zamenjano je ime {new_name}",
"undo" => "razveljavi",
"replaced {new_name} with {old_name}" => "zamenjano ime {new_name} z imenom {old_name}",
+"unshared {files}" => "odstranjeno iz souporabe {files}",
+"deleted {files}" => "izbrisano {files}",
"generating ZIP-file, it may take some time." => "Ustvarjanje datoteke ZIP. To lahko traja nekaj časa.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanje ni mogoče, saj gre za mapo, ali pa je datoteka velikosti 0 bajtov.",
"Upload Error" => "Napaka med nalaganjem",
"Close" => "Zapri",
"Pending" => "V čakanju ...",
"1 file uploading" => "Pošiljanje 1 datoteke",
+"{count} files uploading" => "nalagam {count} datotek",
"Upload cancelled." => "Pošiljanje je preklicano.",
"File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.",
"Invalid name, '/' is not allowed." => "Neveljavno ime. Znak '/' ni dovoljen.",
+"{count} files scanned" => "{count} files scanned",
"error while scanning" => "napaka med pregledovanjem datotek",
"Name" => "Ime",
"Size" => "Velikost",
"Modified" => "Spremenjeno",
"1 folder" => "1 mapa",
+"{count} folders" => "{count} map",
"1 file" => "1 datoteka",
+"{count} files" => "{count} datotek",
"File handling" => "Upravljanje z datotekami",
"Maximum upload size" => "Največja velikost za pošiljanja",
"max. possible: " => "največ mogoče:",
@@ -43,6 +49,7 @@
"New" => "Nova",
"Text file" => "Besedilna datoteka",
"Folder" => "Mapa",
+"From link" => "Iz povezave",
"Upload" => "Pošlji",
"Cancel upload" => "Prekliči pošiljanje",
"Nothing in here. Upload something!" => "Tukaj ni ničesar. Naložite kaj!",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index 79b607413f0..3352dc13110 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -49,6 +49,7 @@
"New" => "อัพโหลดไฟล์ใหม่",
"Text file" => "ไฟล์ข้อความ",
"Folder" => "แฟ้มเอกสาร",
+"From link" => "จากลิงก์",
"Upload" => "อัพโหลด",
"Cancel upload" => "ยกเลิกการอัพโหลด",
"Nothing in here. Upload something!" => "ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!",
diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php
index af75c2774ec..e2b99d899d5 100644
--- a/apps/files/l10n/uk.php
+++ b/apps/files/l10n/uk.php
@@ -5,27 +5,48 @@
"The uploaded file was only partially uploaded" => "Файл відвантажено лише частково",
"No file was uploaded" => "Не відвантажено жодного файлу",
"Missing a temporary folder" => "Відсутній тимчасовий каталог",
+"Failed to write to disk" => "Невдалося записати на диск",
"Files" => "Файли",
"Unshare" => "Заборонити доступ",
"Delete" => "Видалити",
+"Rename" => "Перейменувати",
+"{new_name} already exists" => "{new_name} вже існує",
+"replace" => "заміна",
+"suggest name" => "запропонуйте назву",
+"cancel" => "відміна",
+"replaced {new_name}" => "замінено {new_name}",
"undo" => "відмінити",
+"replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}",
+"deleted {files}" => "видалено {files}",
"generating ZIP-file, it may take some time." => "Створення ZIP-файлу, це може зайняти певний час.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт",
"Upload Error" => "Помилка завантаження",
"Close" => "Закрити",
"Pending" => "Очікування",
+"1 file uploading" => "1 файл завантажується",
+"{count} files uploading" => "{count} файлів завантажується",
"Upload cancelled." => "Завантаження перервано.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.",
"Invalid name, '/' is not allowed." => "Некоректне ім'я, '/' не дозволено.",
+"{count} files scanned" => "{count} файлів проскановано",
+"error while scanning" => "помилка при скануванні",
"Name" => "Ім'я",
"Size" => "Розмір",
"Modified" => "Змінено",
+"1 folder" => "1 папка",
+"{count} folders" => "{count} папок",
+"1 file" => "1 файл",
+"{count} files" => "{count} файлів",
"Maximum upload size" => "Максимальний розмір відвантажень",
"max. possible: " => "макс.можливе:",
+"Enable ZIP-download" => "Активувати ZIP-завантаження",
"0 is unlimited" => "0 є безліміт",
+"Maximum input size for ZIP files" => "Максимальний розмір завантажуємого ZIP файлу",
"Save" => "Зберегти",
"New" => "Створити",
"Text file" => "Текстовий файл",
"Folder" => "Папка",
+"From link" => "З посилання",
"Upload" => "Відвантажити",
"Cancel upload" => "Перервати завантаження",
"Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!",
diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php
index e83ce940c1e..16138e722a2 100644
--- a/apps/files/l10n/vi.php
+++ b/apps/files/l10n/vi.php
@@ -5,7 +5,7 @@
"The uploaded file was only partially uploaded" => "Tập tin tải lên mới chỉ tải lên được một phần",
"No file was uploaded" => "Không có tập tin nào được tải lên",
"Missing a temporary folder" => "Không tìm thấy thư mục tạm",
-"Failed to write to disk" => "Không thể ghi vào đĩa cứng",
+"Failed to write to disk" => "Không thể ghi ",
"Files" => "Tập tin",
"Unshare" => "Không chia sẽ",
"Delete" => "Xóa",
@@ -19,7 +19,7 @@
"replaced {new_name} with {old_name}" => "đã thay thế {new_name} bằng {old_name}",
"unshared {files}" => "hủy chia sẽ {files}",
"deleted {files}" => "đã xóa {files}",
-"generating ZIP-file, it may take some time." => "Tạo tập tinh ZIP, điều này có thể mất một ít thời gian",
+"generating ZIP-file, it may take some time." => "Tạo tập tin ZIP, điều này có thể làm mất một chút thời gian",
"Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin này do nó là một thư mục hoặc kích thước tập tin bằng 0 byte",
"Upload Error" => "Tải lên lỗi",
"Close" => "Đóng",
@@ -40,7 +40,7 @@
"{count} files" => "{count} tập tin",
"File handling" => "Xử lý tập tin",
"Maximum upload size" => "Kích thước tối đa ",
-"max. possible: " => "tối đa cho phép",
+"max. possible: " => "tối đa cho phép:",
"Needed for multi-file and folder downloads." => "Cần thiết cho tải nhiều tập tin và thư mục.",
"Enable ZIP-download" => "Cho phép ZIP-download",
"0 is unlimited" => "0 là không giới hạn",
@@ -48,15 +48,15 @@
"Save" => "Lưu",
"New" => "Mới",
"Text file" => "Tập tin văn bản",
-"Folder" => "Folder",
+"Folder" => "Thư mục",
"From link" => "Từ liên kết",
"Upload" => "Tải lên",
"Cancel upload" => "Hủy upload",
"Nothing in here. Upload something!" => "Không có gì ở đây .Hãy tải lên một cái gì đó !",
"Share" => "Chia sẻ",
"Download" => "Tải xuống",
-"Upload too large" => "File tải lên quá lớn",
-"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang cố gắng tải lên vượt quá kích thước tối đa cho phép trên máy chủ này.",
+"Upload too large" => "Tập tin tải lên quá lớn",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
"Files are being scanned, please wait." => "Tập tin đang được quét ,vui lòng chờ.",
"Current scanning" => "Hiện tại đang quét"
);
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index 12975abdcf6..c9a3ab26c52 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -49,6 +49,7 @@
"New" => "新建",
"Text file" => "文本文件",
"Folder" => "文件夹",
+"From link" => "来自链接",
"Upload" => "上传",
"Cancel upload" => "取消上传",
"Nothing in here. Upload something!" => "这里还什么都没有。上传些东西吧!",
diff --git a/apps/files_encryption/l10n/fa.php b/apps/files_encryption/l10n/fa.php
index 0faa3f3aae7..01582e48e60 100644
--- a/apps/files_encryption/l10n/fa.php
+++ b/apps/files_encryption/l10n/fa.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"Encryption" => "رمزگذاری",
+"Exclude the following file types from encryption" => "نادیده گرفتن فایل های زیر برای رمز گذاری",
"None" => "هیچ‌کدام",
"Enable Encryption" => "فعال کردن رمزگذاری"
);
diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php
index 1434ff48aac..91d155ccad3 100644
--- a/apps/files_encryption/l10n/gl.php
+++ b/apps/files_encryption/l10n/gl.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
-"Encryption" => "Encriptado",
-"Exclude the following file types from encryption" => "Excluír os seguintes tipos de ficheiro da encriptación",
+"Encryption" => "Cifrado",
+"Exclude the following file types from encryption" => "Excluír os seguintes tipos de ficheiro do cifrado",
"None" => "Nada",
-"Enable Encryption" => "Habilitar encriptación"
+"Enable Encryption" => "Activar o cifrado"
);
diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php
new file mode 100644
index 00000000000..83816bc2f14
--- /dev/null
+++ b/apps/files_encryption/l10n/ko.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "암호화",
+"Exclude the following file types from encryption" => "다음파일 형식에 암호화 제외",
+"None" => "없음",
+"Enable Encryption" => "암호화 사용"
+);
diff --git a/apps/files_encryption/l10n/ta_LK.php b/apps/files_encryption/l10n/ta_LK.php
new file mode 100644
index 00000000000..1d1ef74007e
--- /dev/null
+++ b/apps/files_encryption/l10n/ta_LK.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "மறைக்குறியீடு",
+"Exclude the following file types from encryption" => "மறைக்குறியாக்கலில் பின்வரும் கோப்பு வகைகளை நீக்கவும்",
+"None" => "ஒன்றுமில்லை",
+"Enable Encryption" => "மறைக்குறியாக்கலை இயலுமைப்படுத்துக"
+);
diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php
index cabf2da7dce..6365084fdc6 100644
--- a/apps/files_encryption/l10n/vi.php
+++ b/apps/files_encryption/l10n/vi.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Mã hóa",
"Exclude the following file types from encryption" => "Loại trừ các loại tập tin sau đây từ mã hóa",
-"None" => "none",
+"None" => "Không có gì hết",
"Enable Encryption" => "BẬT mã hóa"
);
diff --git a/apps/files_external/l10n/gl.php b/apps/files_external/l10n/gl.php
index 3830efb70bf..f98809bfc0d 100644
--- a/apps/files_external/l10n/gl.php
+++ b/apps/files_external/l10n/gl.php
@@ -1,18 +1,24 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Concedeuse acceso",
+"Error configuring Dropbox storage" => "Erro configurando o almacenamento en Dropbox",
+"Grant access" => "Permitir o acceso",
+"Fill out all required fields" => "Cubrir todos os campos obrigatorios",
+"Please provide a valid Dropbox app key and secret." => "Dá o segredo e a clave correcta do aplicativo de Dropbox.",
+"Error configuring Google Drive storage" => "Erro configurando o almacenamento en Google Drive",
"External Storage" => "Almacenamento externo",
"Mount point" => "Punto de montaxe",
-"Backend" => "Almacén",
+"Backend" => "Infraestrutura",
"Configuration" => "Configuración",
"Options" => "Opcións",
"Applicable" => "Aplicable",
-"Add mount point" => "Engadir punto de montaxe",
-"None set" => "Non establecido",
+"Add mount point" => "Engadir un punto de montaxe",
+"None set" => "Ningún definido",
"All Users" => "Tódolos usuarios",
"Groups" => "Grupos",
"Users" => "Usuarios",
"Delete" => "Eliminar",
-"Enable User External Storage" => "Habilitar almacenamento externo do usuario",
+"Enable User External Storage" => "Activar o almacenamento externo do usuario",
"Allow users to mount their own external storage" => "Permitir aos usuarios montar os seus propios almacenamentos externos",
-"SSL root certificates" => "Certificados raíz SSL",
-"Import Root Certificate" => "Importar Certificado Raíz"
+"SSL root certificates" => "Certificados SSL root",
+"Import Root Certificate" => "Importar o certificado root"
);
diff --git a/apps/files_external/l10n/ko.php b/apps/files_external/l10n/ko.php
new file mode 100644
index 00000000000..d44ad88d85c
--- /dev/null
+++ b/apps/files_external/l10n/ko.php
@@ -0,0 +1,24 @@
+<?php $TRANSLATIONS = array(
+"Access granted" => "접근 허가",
+"Error configuring Dropbox storage" => "드롭박스 저장공간 구성 에러",
+"Grant access" => "접근권한 부여",
+"Fill out all required fields" => "모든 필요한 필드들을 입력하세요.",
+"Please provide a valid Dropbox app key and secret." => "유효한 드롭박스 응용프로그램 키와 비밀번호를 입력해주세요.",
+"Error configuring Google Drive storage" => "구글드라이브 저장공간 구성 에러",
+"External Storage" => "확장 저장공간",
+"Mount point" => "마운트 포인트",
+"Backend" => "백엔드",
+"Configuration" => "설정",
+"Options" => "옵션",
+"Applicable" => "적용가능",
+"Add mount point" => "마운트 포인트 추가",
+"None set" => "세트 없음",
+"All Users" => "모든 사용자",
+"Groups" => "그룹",
+"Users" => "사용자",
+"Delete" => "삭제",
+"Enable User External Storage" => "사용자 확장 저장공간 사용",
+"Allow users to mount their own external storage" => "사용자들에게 그들의 확장 저장공간 마운트 하는것을 허용",
+"SSL root certificates" => "SSL 루트 인증서",
+"Import Root Certificate" => "루트 인증서 가져오기"
+);
diff --git a/apps/files_external/l10n/uk.php b/apps/files_external/l10n/uk.php
index 79920b9014a..ea8f2b26657 100644
--- a/apps/files_external/l10n/uk.php
+++ b/apps/files_external/l10n/uk.php
@@ -1,5 +1,23 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Доступ дозволено",
+"Error configuring Dropbox storage" => "Помилка при налаштуванні сховища Dropbox",
+"Grant access" => "Дозволити доступ",
+"Fill out all required fields" => "Заповніть всі обов'язкові поля",
+"Please provide a valid Dropbox app key and secret." => "Будь ласка, надайте дійсний ключ та пароль Dropbox.",
+"Error configuring Google Drive storage" => "Помилка при налаштуванні сховища Google Drive",
+"External Storage" => "Зовнішні сховища",
+"Mount point" => "Точка монтування",
+"Backend" => "Backend",
+"Configuration" => "Налаштування",
+"Options" => "Опції",
+"Add mount point" => "Додати точку монтування",
+"None set" => "Не встановлено",
+"All Users" => "Усі користувачі",
"Groups" => "Групи",
"Users" => "Користувачі",
-"Delete" => "Видалити"
+"Delete" => "Видалити",
+"Enable User External Storage" => "Активувати користувацькі зовнішні сховища",
+"Allow users to mount their own external storage" => "Дозволити користувачам монтувати власні зовнішні сховища",
+"SSL root certificates" => "SSL корневі сертифікати",
+"Import Root Certificate" => "Імпортувати корневі сертифікати"
);
diff --git a/apps/files_sharing/l10n/gl.php b/apps/files_sharing/l10n/gl.php
index c9644d720e3..fe06a5bc70e 100644
--- a/apps/files_sharing/l10n/gl.php
+++ b/apps/files_sharing/l10n/gl.php
@@ -1,7 +1,9 @@
<?php $TRANSLATIONS = array(
"Password" => "Contrasinal",
"Submit" => "Enviar",
+"%s shared the folder %s with you" => "%s compartiu o cartafol %s contigo",
+"%s shared the file %s with you" => "%s compartiu ficheiro %s contigo",
"Download" => "Baixar",
"No preview available for" => "Sen vista previa dispoñible para ",
-"web services under your control" => "servizos web baixo o seu control"
+"web services under your control" => "servizos web baixo o teu control"
);
diff --git a/apps/files_sharing/l10n/ko.php b/apps/files_sharing/l10n/ko.php
new file mode 100644
index 00000000000..c172da854d8
--- /dev/null
+++ b/apps/files_sharing/l10n/ko.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "비밀번호",
+"Submit" => "제출",
+"%s shared the folder %s with you" => "%s 공유된 폴더 %s 당신과 함께",
+"%s shared the file %s with you" => "%s 공유된 파일 %s 당신과 함께",
+"Download" => "다운로드",
+"No preview available for" => "사용가능한 프리뷰가 없습니다.",
+"web services under your control" => "당신의 통제하에 있는 웹서비스"
+);
diff --git a/apps/files_sharing/l10n/ta_LK.php b/apps/files_sharing/l10n/ta_LK.php
new file mode 100644
index 00000000000..6cf6f6236b7
--- /dev/null
+++ b/apps/files_sharing/l10n/ta_LK.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "கடவுச்சொல்",
+"Submit" => "சமர்ப்பிக்குக",
+"%s shared the folder %s with you" => "%s கோப்புறையானது %s உடன் பகிரப்பட்டது",
+"%s shared the file %s with you" => "%s கோப்பானது %s உடன் பகிரப்பட்டது",
+"Download" => "பதிவிறக்குக",
+"No preview available for" => "அதற்கு முன்னோக்கு ஒன்றும் இல்லை",
+"web services under your control" => "வலைய சேவைகள் உங்களுடைய கட்டுப்பாட்டின் கீழ் உள்ளது"
+);
diff --git a/apps/files_sharing/l10n/uk.php b/apps/files_sharing/l10n/uk.php
index 43b86a28c17..cdc103ad465 100644
--- a/apps/files_sharing/l10n/uk.php
+++ b/apps/files_sharing/l10n/uk.php
@@ -1,4 +1,9 @@
<?php $TRANSLATIONS = array(
"Password" => "Пароль",
-"Download" => "Завантажити"
+"Submit" => "Submit",
+"%s shared the folder %s with you" => "%s опублікував каталог %s для Вас",
+"%s shared the file %s with you" => "%s опублікував файл %s для Вас",
+"Download" => "Завантажити",
+"No preview available for" => "Попередній перегляд недоступний для",
+"web services under your control" => "підконтрольні Вам веб-сервіси"
);
diff --git a/apps/files_sharing/l10n/vi.php b/apps/files_sharing/l10n/vi.php
index 6a36f11899e..afeec5c6481 100644
--- a/apps/files_sharing/l10n/vi.php
+++ b/apps/files_sharing/l10n/vi.php
@@ -1,8 +1,8 @@
<?php $TRANSLATIONS = array(
"Password" => "Mật khẩu",
"Submit" => "Xác nhận",
-"%s shared the folder %s with you" => "%s đã chia sẽ thư mục %s với bạn",
-"%s shared the file %s with you" => "%s đã chia sẽ tập tin %s với bạn",
+"%s shared the folder %s with you" => "%s đã chia sẻ thư mục %s với bạn",
+"%s shared the file %s with you" => "%s đã chia sẻ tập tin %s với bạn",
"Download" => "Tải về",
"No preview available for" => "Không có xem trước cho",
"web services under your control" => "dịch vụ web dưới sự kiểm soát của bạn"
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 35cca7c42dc..647e1e08a31 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -1,3 +1,11 @@
+<script type="text/javascript">
+ <?php if ( array_key_exists('publicListView', $_) && $_['publicListView'] == true ) {
+ echo "var publicListView = true;";
+ } else {
+ echo "var publicListView = false;";
+ }
+ ?>
+</script>
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
<input type="hidden" name="downloadURL" value="<?php echo $_['downloadURL'] ?>" id="downloadURL">
<input type="hidden" name="filename" value="<?php echo $_['filename'] ?>" id="filename">
diff --git a/apps/files_versions/l10n/gl.php b/apps/files_versions/l10n/gl.php
index c0d5937e1b1..535a669d357 100644
--- a/apps/files_versions/l10n/gl.php
+++ b/apps/files_versions/l10n/gl.php
@@ -1,7 +1,8 @@
<?php $TRANSLATIONS = array(
"Expire all versions" => "Caducar todas as versións",
+"History" => "Historia",
"Versions" => "Versións",
-"This will delete all existing backup versions of your files" => "Esto eliminará todas as copias de respaldo existentes dos seus ficheiros",
-"Files Versioning" => "Versionado de ficheiros",
-"Enable" => "Habilitar"
+"This will delete all existing backup versions of your files" => "Isto eliminará todas as copias de seguranza que haxa dos teus ficheiros",
+"Files Versioning" => "Sistema de versión de ficheiros",
+"Enable" => "Activar"
);
diff --git a/apps/files_versions/l10n/ko.php b/apps/files_versions/l10n/ko.php
new file mode 100644
index 00000000000..9c14de0962a
--- /dev/null
+++ b/apps/files_versions/l10n/ko.php
@@ -0,0 +1,8 @@
+<?php $TRANSLATIONS = array(
+"Expire all versions" => "모든 버전이 만료되었습니다.",
+"History" => "역사",
+"Versions" => "버전",
+"This will delete all existing backup versions of your files" => "당신 파일의 존재하는 모든 백업 버전이 삭제될것입니다.",
+"Files Versioning" => "파일 버전관리중",
+"Enable" => "가능"
+);
diff --git a/apps/files_versions/l10n/ru_RU.php b/apps/files_versions/l10n/ru_RU.php
index a14258eea87..557c2f8e6d1 100644
--- a/apps/files_versions/l10n/ru_RU.php
+++ b/apps/files_versions/l10n/ru_RU.php
@@ -2,7 +2,7 @@
"Expire all versions" => "Срок действия всех версий истекает",
"History" => "История",
"Versions" => "Версии",
-"This will delete all existing backup versions of your files" => "Это приведет к удалению всех существующих версий резервной копии ваших файлов",
+"This will delete all existing backup versions of your files" => "Это приведет к удалению всех существующих версий резервной копии Ваших файлов",
"Files Versioning" => "Файлы управления версиями",
"Enable" => "Включить"
);
diff --git a/apps/files_versions/l10n/ta_LK.php b/apps/files_versions/l10n/ta_LK.php
new file mode 100644
index 00000000000..f1215b3ecc1
--- /dev/null
+++ b/apps/files_versions/l10n/ta_LK.php
@@ -0,0 +1,8 @@
+<?php $TRANSLATIONS = array(
+"Expire all versions" => "எல்லா பதிப்புகளும் காலாவதியாகிவிட்டது",
+"History" => "வரலாறு",
+"Versions" => "பதிப்புகள்",
+"This will delete all existing backup versions of your files" => "உங்களுடைய கோப்புக்களில் ஏற்கனவே உள்ள ஆதாரநகல்களின் பதிப்புக்களை இவை அழித்துவிடும்",
+"Files Versioning" => "கோப்பு பதிப்புகள்",
+"Enable" => "இயலுமைப்படுத்துக"
+);
diff --git a/apps/files_versions/l10n/vi.php b/apps/files_versions/l10n/vi.php
index a92e85a017a..260c3b6b39c 100644
--- a/apps/files_versions/l10n/vi.php
+++ b/apps/files_versions/l10n/vi.php
@@ -2,7 +2,7 @@
"Expire all versions" => "Hết hạn tất cả các phiên bản",
"History" => "Lịch sử",
"Versions" => "Phiên bản",
-"This will delete all existing backup versions of your files" => "Điều này sẽ xóa tất cả các phiên bản sao lưu hiện có ",
-"Files Versioning" => "Phiên bản tệp tin",
-"Enable" => "Kích hoạtLịch sử"
+"This will delete all existing backup versions of your files" => "Khi bạn thực hiện thao tác này sẽ xóa tất cả các phiên bản sao lưu hiện có ",
+"Files Versioning" => "Phiên bản tập tin",
+"Enable" => "Bật "
);
diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php
index e6e25cec734..9b54ba18b6c 100644
--- a/apps/user_ldap/appinfo/update.php
+++ b/apps/user_ldap/appinfo/update.php
@@ -34,22 +34,49 @@ $groupBE = new \OCA\user_ldap\GROUP_LDAP();
$groupBE->setConnector($connector);
foreach($objects as $object) {
- $fetchDNSql = 'SELECT `ldap_dn`, `owncloud_name` FROM `*PREFIX*ldap_'.$object.'_mapping` WHERE `directory_uuid` = \'\'';
- $updateSql = 'UPDATE `*PREFIX*ldap_'.$object.'_mapping` SET `ldap_DN` = ?, `directory_uuid` = ? WHERE `ldap_dn` = ?';
+ $fetchDNSql = '
+ SELECT `ldap_dn`, `owncloud_name`, `directory_uuid`
+ FROM `*PREFIX*ldap_'.$object.'_mapping`';
+ $updateSql = '
+ UPDATE `*PREFIX*ldap_'.$object.'_mapping`
+ SET `ldap_DN` = ?, `directory_uuid` = ?
+ WHERE `ldap_dn` = ?';
$query = OCP\DB::prepare($fetchDNSql);
$res = $query->execute();
$DNs = $res->fetchAll();
$updateQuery = OCP\DB::prepare($updateSql);
foreach($DNs as $dn) {
- $newDN = mb_strtolower($dn['ldap_dn'], 'UTF-8');
- if($object == 'user') {
+ $newDN = escapeDN(mb_strtolower($dn['ldap_dn'], 'UTF-8'));
+ if(!empty($dn['directory_uuid'])) {
+ $uuid = $dn['directory_uuid'];
+ } elseif($object == 'user') {
$uuid = $userBE->getUUID($newDN);
//fix home folder to avoid new ones depending on the configuration
$userBE->getHome($dn['owncloud_name']);
} else {
$uuid = $groupBE->getUUID($newDN);
}
- $updateQuery->execute(array($newDN, $uuid, $dn['ldap_dn']));
+ try {
+ $updateQuery->execute(array($newDN, $uuid, $dn['ldap_dn']));
+ } catch(Exception $e) {
+ \OCP\Util::writeLog('user_ldap', 'Could not update '.$object.' '.$dn['ldap_dn'].' in the mappings table. ', \OCP\Util::WARN);
+ }
+
+ }
+}
+
+function escapeDN($dn) {
+ $aDN = ldap_explode_dn($dn, false);
+ unset($aDN['count']);
+ foreach($aDN as $key => $part) {
+ $value = substr($part, strpos($part, '=')+1);
+ $escapedValue = strtr($value, Array(','=>'\2c', '='=>'\3d', '+'=>'\2b',
+ '<'=>'\3c', '>'=>'\3e', ';'=>'\3b', '\\'=>'\5c',
+ '"'=>'\22', '#'=>'\23'));
+ $part = str_replace($part, $value, $escapedValue);
}
+ $dn = implode(',', $aDN);
+
+ return $dn;
}
diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version
index 73082a89b35..b1a5f4781d1 100644
--- a/apps/user_ldap/appinfo/version
+++ b/apps/user_ldap/appinfo/version
@@ -1 +1 @@
-0.3.0.0 \ No newline at end of file
+0.3.0.1 \ No newline at end of file
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
new file mode 100644
index 00000000000..efcea02c180
--- /dev/null
+++ b/apps/user_ldap/l10n/gl.php
@@ -0,0 +1,37 @@
+<?php $TRANSLATIONS = array(
+"Host" => "Servidor",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podes omitir o protocolo agás que precises de SSL. Nese caso comeza con ldaps://",
+"Base DN" => "DN base",
+"You can specify Base DN for users and groups in the Advanced tab" => "Podes especificar a DN base para usuarios e grupos na lapela de «Avanzado»",
+"User DN" => "DN do usuario",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso en anónimo deixa o DN e o contrasinal baleiros.",
+"Password" => "Contrasinal",
+"For anonymous access, leave DN and Password empty." => "Para o acceso anónimo deixa o DN e o contrasinal baleiros.",
+"User Login Filter" => "Filtro de acceso de usuarios",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "usar a marca de posición %%uid, p.ex «uid=%%uid»",
+"User List Filter" => "Filtro da lista de usuarios",
+"Defines the filter to apply, when retrieving users." => "Define o filtro a aplicar cando se recompilan os usuarios.",
+"without any placeholder, e.g. \"objectClass=person\"." => "sen ningunha marca de posición, como p.ex \"objectClass=persoa\".",
+"Group Filter" => "Filtro de grupo",
+"Defines the filter to apply, when retrieving groups." => "Define o filtro a aplicar cando se recompilan os grupos.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ningunha marca de posición, como p.ex \"objectClass=grupoPosix\".",
+"Port" => "Porto",
+"Base User Tree" => "Base da árbore de usuarios",
+"Base Group Tree" => "Base da árbore de grupo",
+"Group-Member association" => "Asociación de grupos e membros",
+"Use TLS" => "Usar TLS",
+"Do not use it for SSL connections, it will fail." => "Non o empregues para conexións SSL: fallará.",
+"Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)",
+"Turn off SSL certificate validation." => "Apaga a validación do certificado SSL.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no teu servidor ownCloud.",
+"Not recommended, use for testing only." => "Non se recomenda. Só para probas.",
+"User Display Name Field" => "Campo de mostra do nome de usuario",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "O atributo LDAP a empregar para xerar o nome de usuario de ownCloud.",
+"Group Display Name Field" => "Campo de mostra do nome de grupo",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "O atributo LDAP úsase para xerar os nomes dos grupos de ownCloud.",
+"in bytes" => "en bytes",
+"in seconds. A change empties the cache." => "en segundos. Calquera cambio baleira o caché.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixar baleiro para o nome de usuario (por defecto). Noutro caso, especifica un atributo LDAP/AD.",
+"Help" => "Axuda"
+);
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
new file mode 100644
index 00000000000..681365d221f
--- /dev/null
+++ b/apps/user_ldap/l10n/ko.php
@@ -0,0 +1,33 @@
+<?php $TRANSLATIONS = array(
+"Host" => "호스트",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "당신은 필요로하는 SSL을 제외하고, 프로토콜을 생략 할 수 있습니다. 다음 시작 주소는 LDAPS://",
+"Base DN" => "기본 DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "당신은 고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.",
+"User DN" => "사용자 DN",
+"Password" => "비밀번호",
+"For anonymous access, leave DN and Password empty." => "익명의 접속을 위해서는 DN과 비밀번호를 빈상태로 두면 됩니다.",
+"User Login Filter" => "사용자 로그인 필터",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "로그인을 시도 할 때 적용 할 필터를 정의합니다. %%udi는 로그인 작업의 사용자 이름을 대체합니다.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "use %%uid placeholder, e.g. \"uid=%%uid\"",
+"User List Filter" => "사용자 목록 필터",
+"Defines the filter to apply, when retrieving users." => "사용자를 검색 할 때 적용 할 필터를 정의합니다.",
+"Group Filter" => "그룹 필터",
+"Defines the filter to apply, when retrieving groups." => "그룹을 검색 할 때 적용 할 필터를 정의합니다.",
+"Port" => "포트",
+"Base User Tree" => "기본 사용자 트리",
+"Base Group Tree" => "기본 그룹 트리",
+"Group-Member association" => "그룹 회원 동료",
+"Use TLS" => "TLS 사용",
+"Do not use it for SSL connections, it will fail." => "SSL연결을 사용하지 마세요, 그것은 실패할겁니다.",
+"Case insensitve LDAP server (Windows)" => "insensitve LDAP 서버 (Windows)의 경우",
+"Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "연결에만 이 옵션을 사용할 경우 당신의 ownCloud 서버에 LDAP 서버의 SSL 인증서를 가져옵니다.",
+"Not recommended, use for testing only." => "추천하지 않음, 테스트로만 사용",
+"User Display Name Field" => "사용자 표시 이름 필드",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP 속성은 사용자의 ownCloud 이름을 생성하기 위해 사용합니다.",
+"Group Display Name Field" => "그룹 표시 이름 필드",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP 속성은 그룹의 ownCloud 이름을 생성하기 위해 사용합니다.",
+"in bytes" => "바이트",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름(기본값)을 비워 둡니다. 그렇지 않으면 LDAP/AD 특성을 지정합니다.",
+"Help" => "도움말"
+);
diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php
new file mode 100644
index 00000000000..2028becaf98
--- /dev/null
+++ b/apps/user_ldap/l10n/ta_LK.php
@@ -0,0 +1,27 @@
+<?php $TRANSLATIONS = array(
+"Host" => "ஓம்புனர்",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்",
+"Base DN" => "தள DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் ",
+"User DN" => "பயனாளர் DN",
+"Password" => "கடவுச்சொல்",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\".",
+"Port" => "துறை ",
+"Base User Tree" => "தள பயனாளர் மரம்",
+"Base Group Tree" => "தள குழு மரம்",
+"Group-Member association" => "குழு உறுப்பினர் சங்கம்",
+"Use TLS" => "TLS ஐ பயன்படுத்தவும்",
+"Do not use it for SSL connections, it will fail." => "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்.",
+"Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)",
+"Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்",
+"Not recommended, use for testing only." => "பரிந்துரைக்கப்படவில்லை, சோதனைக்காக மட்டும் பயன்படுத்தவும்.",
+"User Display Name Field" => "பயனாளர் காட்சிப்பெயர் புலம்",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "பயனாளரின் ownCloud பெயரை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.",
+"Group Display Name Field" => "குழுவின் காட்சி பெயர் புலம் ",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "ownCloud குழுக்களின் பெயர்களை உருவாக்க LDAP பண்புக்கூறை பயன்படுத்தவும்.",
+"in bytes" => "bytes களில் ",
+"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்.",
+"Help" => "உதவி"
+);
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index b2244c17c0e..53d4edbe69c 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -58,6 +58,7 @@ abstract class Access {
return false;
}
$rr = @ldap_read($cr, $dn, $filter, array($attr));
+ $dn = $this->DNasBaseParameter($dn);
if(!is_resource($rr)) {
\OCP\Util::writeLog('user_ldap', 'readAttribute failed for DN '.$dn, \OCP\Util::DEBUG);
//in case an error occurs , e.g. object does not exist
@@ -119,6 +120,14 @@ abstract class Access {
//make comparisons and everything work
$dn = mb_strtolower($dn, 'UTF-8');
+ //escape DN values according to RFC 2253 – this is already done by ldap_explode_dn
+ //to use the DN in search filters, \ needs to be escaped to \5c additionally
+ //to use them in bases, we convert them back to simple backslashes in readAttribute()
+ $aDN = ldap_explode_dn($dn, false);
+ unset($aDN['count']);
+ $dn = implode(',', $aDN);
+ $dn = str_replace('\\', '\\5c', $dn);
+
return $dn;
}
@@ -227,7 +236,6 @@ abstract class Access {
* returns the internal ownCloud name for the given LDAP DN of the user, false on DN outside of search DN
*/
public function dn2ocname($dn, $ldapname = null, $isUser = true) {
- $dn = $this->sanitizeDN($dn);
$table = $this->getMapTable($isUser);
if($isUser) {
$fncFindMappedName = 'findMappedUser';
@@ -424,7 +432,6 @@ abstract class Access {
*/
private function mapComponent($dn, $ocname, $isUser = true) {
$table = $this->getMapTable($isUser);
- $dn = $this->sanitizeDN($dn);
$sqlAdjustment = '';
$dbtype = \OCP\Config::getSystemValue('dbtype');
@@ -677,6 +684,7 @@ abstract class Access {
}
public function areCredentialsValid($name, $password) {
+ $name = $this->DNasBaseParameter($name);
$testConnection = clone $this->connection;
$credentials = array(
'ldapAgentName' => $name,
@@ -719,6 +727,7 @@ abstract class Access {
public function getUUID($dn) {
if($this->detectUuidAttribute($dn)) {
+ \OCP\Util::writeLog('user_ldap', 'UUID Checking \ UUID for '.$dn.' using '. $this->connection->ldapUuidAttribute, \OCP\Util::DEBUG);
$uuid = $this->readAttribute($dn, $this->connection->ldapUuidAttribute);
if(!is_array($uuid) && $this->connection->ldapOverrideUuidAttribute) {
$this->detectUuidAttribute($dn, true);
@@ -764,6 +773,18 @@ abstract class Access {
}
/**
+ * @brief converts a stored DN so it can be used as base parameter for LDAP queries
+ * @param $dn the DN
+ * @returns String
+ *
+ * converts a stored DN so it can be used as base parameter for LDAP queries
+ * internally we store them for usage in LDAP filters
+ */
+ private function DNasBaseParameter($dn) {
+ return str_replace('\\5c', '\\', $dn);
+ }
+
+ /**
* @brief get a cookie for the next LDAP paged search
* @param $filter the search filter to identify the correct search
* @param $limit the limit (or 'pageSize'), to identify the correct search well
diff --git a/apps/user_webdavauth/l10n/gl.php b/apps/user_webdavauth/l10n/gl.php
new file mode 100644
index 00000000000..a5b7e56771f
--- /dev/null
+++ b/apps/user_webdavauth/l10n/gl.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "URL WebDAV: http://"
+);
diff --git a/apps/user_webdavauth/l10n/ko.php b/apps/user_webdavauth/l10n/ko.php
new file mode 100644
index 00000000000..9bd32954b05
--- /dev/null
+++ b/apps/user_webdavauth/l10n/ko.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/sl.php b/apps/user_webdavauth/l10n/sl.php
new file mode 100644
index 00000000000..9bd32954b05
--- /dev/null
+++ b/apps/user_webdavauth/l10n/sl.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/ta_LK.php b/apps/user_webdavauth/l10n/ta_LK.php
new file mode 100644
index 00000000000..9bd32954b05
--- /dev/null
+++ b/apps/user_webdavauth/l10n/ta_LK.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/th_TH.php b/apps/user_webdavauth/l10n/th_TH.php
new file mode 100644
index 00000000000..9bd32954b05
--- /dev/null
+++ b/apps/user_webdavauth/l10n/th_TH.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/uk.php b/apps/user_webdavauth/l10n/uk.php
new file mode 100644
index 00000000000..9bd32954b05
--- /dev/null
+++ b/apps/user_webdavauth/l10n/uk.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/zh_CN.php b/apps/user_webdavauth/l10n/zh_CN.php
new file mode 100644
index 00000000000..33c77f7d30e
--- /dev/null
+++ b/apps/user_webdavauth/l10n/zh_CN.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"WebDAV URL: http://" => "WebDAV地址: http://"
+);
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index 0b0be7c2fa1..839196c114c 100755
--- a/apps/user_webdavauth/user_webdavauth.php
+++ b/apps/user_webdavauth/user_webdavauth.php
@@ -56,7 +56,7 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
}
$returncode= substr($headers[0], 9, 3);
- if($returncode=='401') {
+ if(($returncode=='401') or ($returncode=='403')) {
return(false);
}else{
return($uid);