summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/acl/localization/ko_KR.inc102
-rw-r--r--plugins/archive/localization/az_AZ.inc18
-rw-r--r--plugins/archive/localization/es_AR.inc18
-rw-r--r--plugins/archive/localization/ko_KR.inc20
-rw-r--r--plugins/archive/localization/lt_LT.inc18
-rw-r--r--plugins/archive/localization/tr_TR.inc18
-rw-r--r--plugins/filesystem_attachments/filesystem_attachments.php1
-rw-r--r--plugins/help/localization/ko_KR.inc2
-rw-r--r--plugins/managesieve/localization/bs_BA.inc6
-rw-r--r--plugins/new_user_dialog/localization/ko_KR.inc4
-rw-r--r--plugins/new_user_dialog/localization/nl_NL.inc4
-rw-r--r--plugins/new_user_dialog/new_user_dialog.php4
-rw-r--r--plugins/new_user_dialog/package.xml25
-rw-r--r--plugins/newmail_notifier/localization/nl_NL.inc10
-rw-r--r--plugins/password/README8
-rw-r--r--plugins/password/config.inc.php.dist8
-rw-r--r--plugins/password/drivers/cpanel.php110
-rw-r--r--plugins/password/localization/nl_NL.inc20
-rw-r--r--plugins/password/package.xml23
-rw-r--r--plugins/userinfo/localization/nl_NL.inc2
-rw-r--r--plugins/virtuser_query/virtuser_query.php9
21 files changed, 207 insertions, 223 deletions
diff --git a/plugins/acl/localization/ko_KR.inc b/plugins/acl/localization/ko_KR.inc
index 85e33725d..524427a4e 100644
--- a/plugins/acl/localization/ko_KR.inc
+++ b/plugins/acl/localization/ko_KR.inc
@@ -19,81 +19,81 @@
$labels['sharing'] = '공유';
$labels['myrights'] = '접근 권한';
$labels['username'] = '사용자:';
-$labels['advanced'] = 'advanced mode';
+$labels['advanced'] = '고급 모드';
$labels['newuser'] = '엔트리 추가';
-$labels['actions'] = 'Access right actions...';
-$labels['anyone'] = 'All users (anyone)';
-$labels['anonymous'] = 'Guests (anonymous)';
+$labels['actions'] = '접근 권한 동작...';
+$labels['anyone'] = '모든 사용자 (아무나)';
+$labels['anonymous'] = '방문자 (익명)';
$labels['identifier'] = '식별자';
-$labels['acll'] = 'Lookup';
-$labels['aclr'] = 'Read messages';
+$labels['acll'] = '조회';
+$labels['aclr'] = '읽은 메시지';
$labels['acls'] = '읽은 상태로 유지';
-$labels['aclw'] = 'Write flags';
-$labels['acli'] = 'Insert (Copy into)';
+$labels['aclw'] = '쓰기 깃발';
+$labels['acli'] = '삽입 (복사할 위치)';
$labels['aclp'] = '게시';
$labels['aclc'] = '하위 폴더 만들기';
$labels['aclk'] = '하위 폴더 만들기';
$labels['acld'] = '메시지 삭제';
$labels['aclt'] = '메시지 삭제';
-$labels['acle'] = 'Expunge';
+$labels['acle'] = '영구 제거';
$labels['aclx'] = '폴더 삭제';
$labels['acla'] = '관리자';
-$labels['aclfull'] = 'Full control';
-$labels['aclother'] = 'Other';
-$labels['aclread'] = 'Read';
-$labels['aclwrite'] = 'Write';
-$labels['acldelete'] = 'Delete';
+$labels['aclfull'] = '전체 제어권';
+$labels['aclother'] = '기타';
+$labels['aclread'] = '읽기';
+$labels['aclwrite'] = '쓰기';
+$labels['acldelete'] = '삭제';
-$labels['shortacll'] = 'Lookup';
-$labels['shortaclr'] = 'Read';
-$labels['shortacls'] = 'Keep';
-$labels['shortaclw'] = 'Write';
-$labels['shortacli'] = 'Insert';
+$labels['shortacll'] = '조회';
+$labels['shortaclr'] = '읽기';
+$labels['shortacls'] = '보관';
+$labels['shortaclw'] = '쓰기';
+$labels['shortacli'] = '삽입';
$labels['shortaclp'] = '게시';
-$labels['shortaclc'] = 'Create';
-$labels['shortaclk'] = 'Create';
-$labels['shortacld'] = 'Delete';
-$labels['shortaclt'] = 'Delete';
-$labels['shortacle'] = 'Expunge';
+$labels['shortaclc'] = '생성';
+$labels['shortaclk'] = '생성';
+$labels['shortacld'] = '삭제';
+$labels['shortaclt'] = '삭제';
+$labels['shortacle'] = '지움';
$labels['shortaclx'] = '폴더 삭제';
-$labels['shortacla'] = '관리자';
+$labels['shortacla'] = '관리';
-$labels['shortaclother'] = 'Other';
-$labels['shortaclread'] = 'Read';
-$labels['shortaclwrite'] = 'Write';
-$labels['shortacldelete'] = 'Delete';
+$labels['shortaclother'] = '기타';
+$labels['shortaclread'] = '읽기';
+$labels['shortaclwrite'] = '쓱';
+$labels['shortacldelete'] = '삭제';
-$labels['longacll'] = 'The folder is visible on lists and can be subscribed to';
-$labels['longaclr'] = 'The folder can be opened for reading';
-$labels['longacls'] = 'Messages Seen flag can be changed';
-$labels['longaclw'] = 'Messages flags and keywords can be changed, except Seen and Deleted';
-$labels['longacli'] = '폴더에 메시지를 복사하거나 작성할 수 있음';
-$labels['longaclp'] = '이 폴더로 메시지를 게시할 수 있음';
-$labels['longaclc'] = '이 폴더의 바로 밑에 폴더를 생성(또는 이름 변경)할 수 있음';
-$labels['longaclk'] = '이 폴더의 바로 밑에 폴더를 생성(또는 이름 변경)할 수 있음';
-$labels['longacld'] = '메시지 삭제 플래그가 변경될 수 있음';
-$labels['longaclt'] = '메시지 삭제 플래그가 변경될 수 있음';
-$labels['longacle'] = 'Messages can be expunged';
-$labels['longaclx'] = '폴더를 삭제하거나 이름 변경 할 수 있음';
+$labels['longacll'] = '폴더가 목록에 나타나고 다음 사용자가 구독할 수 있음:';
+$labels['longaclr'] = '읽기 위해 폴더를 열 수 있음';
+$labels['longacls'] = '읽은 메시지 깃발이 변경될 수 있음';
+$labels['longaclw'] = '메시지 깃발 및 키워드를 변경할 수 있음, 다만 읽음 및 삭제됨은 제외';
+$labels['longacli'] = '메시지를 폴더에 복사하거나 작성할 수 있음';
+$labels['longaclp'] = '메시지를 이 폴더로 게시할 수 있음';
+$labels['longaclc'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음';
+$labels['longaclk'] = '이 폴더의 바로 아래에 폴더를 생성(또는 이름 변경)할 수 있음';
+$labels['longacld'] = '메시지 삭제 깃발이 변경될 수 있음';
+$labels['longaclt'] = '메시지 삭제 깃발이 변경될 수 있음';
+$labels['longacle'] = '메시지가 영구 제거될 수 있음';
+$labels['longaclx'] = '폴더를 삭제하거나 이름을 변경 할 수 있음';
$labels['longacla'] = '폴더의 접근 권한을 변경할 수 있음';
$labels['longaclfull'] = '폴더 관리를 포함한 모든 제어권';
-$labels['longaclread'] = 'The folder can be opened for reading';
-$labels['longaclwrite'] = '메시지에 표시하거나, 폴더로 메시지를 복사하거나 작성할 수 있음';
+$labels['longaclread'] = '폴더를 열어 읽을 수 있음';
+$labels['longaclwrite'] = '메시지에 표시하거나, 폴더로 이동하거나 복사할 수 있음';
$labels['longacldelete'] = '메시지를 삭제할 수 있음';
-$messages['deleting'] = '접근 권한 삭제 중...';
-$messages['saving'] = '접근 권한 저장 중...';
-$messages['updatesuccess'] = '접근 권한을 변경하는데 성공 함.';
-$messages['deletesuccess'] = '접근 권한을 삭제하는데 성공 함.';
-$messages['createsuccess'] = '접근 권한을 추가하는데 성공 함.';
-$messages['updateerror'] = '접근 권한을 갱신할 수 없음.';
+$messages['deleting'] = '접근 권한을 삭제하는 중...';
+$messages['saving'] = '접근 권한을 저장하는 중...';
+$messages['updatesuccess'] = '접근 권한을 성공적으로 변경함.';
+$messages['deletesuccess'] = '접근 권한을 성공적으로 삭제함.';
+$messages['createsuccess'] = '접근 권한을 성공적으로 추가함.';
+$messages['updateerror'] = '접근 권한을 업데이트할 수 없음.';
$messages['deleteerror'] = '접근 권한을 삭제할 수 없음.';
$messages['createerror'] = '접근 권한을 추가할 수 없음.';
-$messages['deleteconfirm'] = '선택한 사용자(들)의 접근 권한을 삭제하고자 하는 것이 확실 합니까?';
+$messages['deleteconfirm'] = '정말로 선택한 사용자의 접근 권한을 삭제하시겠습니까?';
$messages['norights'] = '지정된 권한이 없음!';
-$messages['nouser'] = '지정된 username이 없음!';
+$messages['nouser'] = '지정된 사용자명이 없음!';
?>
diff --git a/plugins/archive/localization/az_AZ.inc b/plugins/archive/localization/az_AZ.inc
index 8aab6f2da..19a409d41 100644
--- a/plugins/archive/localization/az_AZ.inc
+++ b/plugins/archive/localization/az_AZ.inc
@@ -20,15 +20,15 @@ $labels = array();
$labels['buttontext'] = 'Arxiv';
$labels['buttontitle'] = 'Mesajı arxivə göndər';
$labels['archived'] = 'Arxivə göndərildi';
-$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.';
-$labels['archiveerror'] = 'Some messages could not be archived';
+$labels['archivedreload'] = 'Müvəffəqiyyətlə arxivləşdirildi. Yeni arxiv qovluqlarını görmək üçün səhifəni yeniləyin.';
+$labels['archiveerror'] = 'Bəzi məktublar arxivləşdirilə bilinmirlər';
$labels['archivefolder'] = 'Arxiv';
-$labels['settingstitle'] = 'Archive';
-$labels['archivetype'] = 'Divide archive by';
-$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)';
-$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)';
-$labels['archivetypefolder'] = 'Original folder';
-$labels['archivetypesender'] = 'Sender email';
-$labels['unkownsender'] = 'unknown';
+$labels['settingstitle'] = 'Arxiv';
+$labels['archivetype'] = 'Arxivi böl: ';
+$labels['archivetypeyear'] = 'İl (məs. Arxiv/2012)';
+$labels['archivetypemonth'] = 'Ay (məs. Arxiv/2012/06)';
+$labels['archivetypefolder'] = 'Orijinal qovluq';
+$labels['archivetypesender'] = 'Göndərənin E-Poçtu';
+$labels['unkownsender'] = 'naməlum';
?>
diff --git a/plugins/archive/localization/es_AR.inc b/plugins/archive/localization/es_AR.inc
index ad9e84add..5fb082497 100644
--- a/plugins/archive/localization/es_AR.inc
+++ b/plugins/archive/localization/es_AR.inc
@@ -20,15 +20,15 @@ $labels = array();
$labels['buttontext'] = 'Archivo';
$labels['buttontitle'] = 'Archivar este mensaje';
$labels['archived'] = 'Mensaje Archivado';
-$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.';
-$labels['archiveerror'] = 'Some messages could not be archived';
+$labels['archivedreload'] = 'Archivado satisfactoriamente. Recarga la página para ver las nuevas capetas archivadas.';
+$labels['archiveerror'] = 'Algunos mensajes no pudieron archivarse';
$labels['archivefolder'] = 'Archivo';
-$labels['settingstitle'] = 'Archive';
-$labels['archivetype'] = 'Divide archive by';
-$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)';
-$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)';
-$labels['archivetypefolder'] = 'Original folder';
-$labels['archivetypesender'] = 'Sender email';
-$labels['unkownsender'] = 'unknown';
+$labels['settingstitle'] = 'Archivo';
+$labels['archivetype'] = 'Separar archivo por';
+$labels['archivetypeyear'] = 'Año (ej. Archivo/2012)';
+$labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)';
+$labels['archivetypefolder'] = 'Carpeta original';
+$labels['archivetypesender'] = 'Remitente del correo';
+$labels['unkownsender'] = 'desconocido';
?>
diff --git a/plugins/archive/localization/ko_KR.inc b/plugins/archive/localization/ko_KR.inc
index 96a7ac404..4226420a0 100644
--- a/plugins/archive/localization/ko_KR.inc
+++ b/plugins/archive/localization/ko_KR.inc
@@ -19,16 +19,16 @@
$labels = array();
$labels['buttontext'] = '보관';
$labels['buttontitle'] = '이 메시지를 보관';
-$labels['archived'] = '성공적으로 보관 됨';
-$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.';
-$labels['archiveerror'] = 'Some messages could not be archived';
+$labels['archived'] = '성공적으로 보관됨';
+$labels['archivedreload'] = '성공적으로 보관됨. 페이지를 다시 불러와서 새 보관 폴더를 확인하세요.';
+$labels['archiveerror'] = '일부 메시지가 보관되지 않음';
$labels['archivefolder'] = '보관';
-$labels['settingstitle'] = 'Archive';
-$labels['archivetype'] = 'Divide archive by';
-$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)';
-$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)';
-$labels['archivetypefolder'] = 'Original folder';
-$labels['archivetypesender'] = 'Sender email';
-$labels['unkownsender'] = 'unknown';
+$labels['settingstitle'] = '보관';
+$labels['archivetype'] = '보관된 메시지 정리 기준';
+$labels['archivetypeyear'] = '연도 (예: 보관 편지함/2012)';
+$labels['archivetypemonth'] = '월 (예: 보관 편지함/2012/06)';
+$labels['archivetypefolder'] = '원본 폴더';
+$labels['archivetypesender'] = '발신인 이메일';
+$labels['unkownsender'] = '알 수 없음';
?>
diff --git a/plugins/archive/localization/lt_LT.inc b/plugins/archive/localization/lt_LT.inc
index 36046277a..069a65665 100644
--- a/plugins/archive/localization/lt_LT.inc
+++ b/plugins/archive/localization/lt_LT.inc
@@ -20,15 +20,15 @@ $labels = array();
$labels['buttontext'] = 'Archyvuoti';
$labels['buttontitle'] = 'Perkelti šį laišką į archyvą';
$labels['archived'] = 'Laiškas sėkmingai perkeltas į archyvą';
-$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.';
-$labels['archiveerror'] = 'Some messages could not be archived';
+$labels['archivedreload'] = 'Sėkmingai perkelta į archyvą. Iš naujo įkelkite puslapį, kad pamatytumėt pasikeitimus.';
+$labels['archiveerror'] = 'Į archyvą nepavyko perkelti keleto laiškų.';
$labels['archivefolder'] = 'Archyvuoti';
-$labels['settingstitle'] = 'Archive';
-$labels['archivetype'] = 'Divide archive by';
-$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)';
-$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)';
-$labels['archivetypefolder'] = 'Original folder';
-$labels['archivetypesender'] = 'Sender email';
-$labels['unkownsender'] = 'unknown';
+$labels['settingstitle'] = 'Archyvuoti';
+$labels['archivetype'] = 'Padalinti archyvą pagal';
+$labels['archivetypeyear'] = 'Metai (pvz. Archyvas/2012)';
+$labels['archivetypemonth'] = 'Mėnesis (pvz. Archyvas/2012/06)';
+$labels['archivetypefolder'] = 'Tikrasis aplankas';
+$labels['archivetypesender'] = 'Siuntėjo el. pašto adresas';
+$labels['unkownsender'] = 'nežinomas';
?>
diff --git a/plugins/archive/localization/tr_TR.inc b/plugins/archive/localization/tr_TR.inc
index 765498301..b6960ea89 100644
--- a/plugins/archive/localization/tr_TR.inc
+++ b/plugins/archive/localization/tr_TR.inc
@@ -20,15 +20,15 @@ $labels = array();
$labels['buttontext'] = 'Arşiv';
$labels['buttontitle'] = 'Bu postayı arşivle';
$labels['archived'] = 'Başarıyla arşivlendi';
-$labels['archivedreload'] = 'Successfully archived. Reload the page to see the new archive folders.';
-$labels['archiveerror'] = 'Some messages could not be archived';
+$labels['archivedreload'] = 'Başarıyla arşivlendi. Yeni arşiv dosyalarını görmek için sayfayı yenileyin.';
+$labels['archiveerror'] = 'Bazı mesajlar arşivlenemedi.';
$labels['archivefolder'] = 'Arşiv';
-$labels['settingstitle'] = 'Archive';
-$labels['archivetype'] = 'Divide archive by';
-$labels['archivetypeyear'] = 'Year (e.g. Archive/2012)';
-$labels['archivetypemonth'] = 'Month (e.g. Archive/2012/06)';
-$labels['archivetypefolder'] = 'Original folder';
-$labels['archivetypesender'] = 'Sender email';
-$labels['unkownsender'] = 'unknown';
+$labels['settingstitle'] = 'Arşiv';
+$labels['archivetype'] = 'Arşivi bunla böl';
+$labels['archivetypeyear'] = 'Yıl (Arşiv/2012)';
+$labels['archivetypemonth'] = 'Ay(Arşiv/2012/06)';
+$labels['archivetypefolder'] = 'Özgün dosya';
+$labels['archivetypesender'] = 'E-Posta Göndericisi';
+$labels['unkownsender'] = 'bilinmeyen';
?>
diff --git a/plugins/filesystem_attachments/filesystem_attachments.php b/plugins/filesystem_attachments/filesystem_attachments.php
index fa147795f..d952e5a75 100644
--- a/plugins/filesystem_attachments/filesystem_attachments.php
+++ b/plugins/filesystem_attachments/filesystem_attachments.php
@@ -60,6 +60,7 @@ class filesystem_attachments extends rcube_plugin
$args['id'] = $this->file_id();
$args['path'] = $tmpfname;
$args['status'] = true;
+ @chmod($tmpfname, 0600); // set correct permissions (#1488996)
// Note the file for later cleanup
$_SESSION['plugins']['filesystem_attachments'][$group][] = $tmpfname;
diff --git a/plugins/help/localization/ko_KR.inc b/plugins/help/localization/ko_KR.inc
index a589d0ce1..836da6639 100644
--- a/plugins/help/localization/ko_KR.inc
+++ b/plugins/help/localization/ko_KR.inc
@@ -19,6 +19,6 @@
$labels = array();
$labels['help'] = '도움말';
$labels['about'] = '정보';
-$labels['license'] = '라이센스';
+$labels['license'] = '라이선스';
?>
diff --git a/plugins/managesieve/localization/bs_BA.inc b/plugins/managesieve/localization/bs_BA.inc
index 6d1ec8d2c..7d21dbd9f 100644
--- a/plugins/managesieve/localization/bs_BA.inc
+++ b/plugins/managesieve/localization/bs_BA.inc
@@ -57,9 +57,9 @@ $labels['sender'] = 'Pošiljaoc';
$labels['recipient'] = 'Primaoc';
$labels['vacationaddresses'] = 'Moje dodatne email adrese (odvojite zarezima):';
$labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):';
-$labels['vacationinterval'] = 'How often send messages:';
-$labels['days'] = 'days';
-$labels['seconds'] = 'seconds';
+$labels['vacationinterval'] = 'Frekvencija slanja poruka:';
+$labels['days'] = 'dana';
+$labels['seconds'] = 'sekundi';
$labels['vacationreason'] = 'Tijelo poruke (razlog za odmor):';
$labels['vacationsubject'] = 'Naslov poruke:';
$labels['rulestop'] = 'Prestani procjenjivati pravila';
diff --git a/plugins/new_user_dialog/localization/ko_KR.inc b/plugins/new_user_dialog/localization/ko_KR.inc
index 82240f37d..d9b519475 100644
--- a/plugins/new_user_dialog/localization/ko_KR.inc
+++ b/plugins/new_user_dialog/localization/ko_KR.inc
@@ -17,7 +17,7 @@
*/
$labels = array();
-$labels['identitydialogtitle'] = '수신자의 신원을 채우기 바랍니다.';
-$labels['identitydialoghint'] = '이 박스는 최초로 로그인할 때만 나타납니다.';
+$labels['identitydialogtitle'] = '수신인의 신원을 완성하시기 바랍니다.';
+$labels['identitydialoghint'] = '이 상자는 최초로 로그인할 때만 나타납니다.';
?> \ No newline at end of file
diff --git a/plugins/new_user_dialog/localization/nl_NL.inc b/plugins/new_user_dialog/localization/nl_NL.inc
index 4d5d41185..c5d392f98 100644
--- a/plugins/new_user_dialog/localization/nl_NL.inc
+++ b/plugins/new_user_dialog/localization/nl_NL.inc
@@ -17,7 +17,7 @@
*/
$labels = array();
-$labels['identitydialogtitle'] = 'Vul uw correcte identiteitgegevens in a.u.b.';
-$labels['identitydialoghint'] = 'Dit scherm verschijnt enkel bij uw eerste login.';
+$labels['identitydialogtitle'] = 'Vul alstublieft uw afzendergegevens in.';
+$labels['identitydialoghint'] = 'Dit scherm verschijnt eenmalig bij uw eerste aanmelding.';
?> \ No newline at end of file
diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php
index 871384e47..8d641c946 100644
--- a/plugins/new_user_dialog/new_user_dialog.php
+++ b/plugins/new_user_dialog/new_user_dialog.php
@@ -126,7 +126,7 @@ class new_user_dialog extends rcube_plugin
);
// don't let the user alter the e-mail address if disabled by config
- if ($identities_level == 1 || $identities_level == 3)
+ if (in_array($identities_level, array(1,3,4)))
$save_data['email'] = $identity['email'];
else
$save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']);
@@ -141,5 +141,3 @@ class new_user_dialog extends rcube_plugin
}
}
-
-?>
diff --git a/plugins/new_user_dialog/package.xml b/plugins/new_user_dialog/package.xml
index 0bca1d9d4..c9f1965de 100644
--- a/plugins/new_user_dialog/package.xml
+++ b/plugins/new_user_dialog/package.xml
@@ -13,10 +13,9 @@
<email>roundcube@gmail.com</email>
<active>yes</active>
</lead>
- <date>2012-01-16</date>
- <time>17:00</time>
+ <date>2013-04-16</date>
<version>
- <release>1.5</release>
+ <release>1.6</release>
<api>1.0</api>
</version>
<stability>
@@ -25,8 +24,7 @@
</stability>
<license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
<notes>
-- Use jquery UI to render the dialog
-- Fixed IDNA encoding/decoding of e-mail addresses (#1487909)
+- Fix handling of identities_level=4
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -150,5 +148,22 @@
<license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>- Use jquery UI to render the dialog</notes>
</release>
+ <release>
+ <date>2012-01-16</date>
+ <time>17:00</time>
+ <version>
+ <release>1.5</release>
+ <api>1.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
+ <notes>
+- Use jquery UI to render the dialog
+- Fixed IDNA encoding/decoding of e-mail addresses (#1487909)
+ </notes>
+ </release>
</changelog>
</package>
diff --git a/plugins/newmail_notifier/localization/nl_NL.inc b/plugins/newmail_notifier/localization/nl_NL.inc
index e18a6ff2d..01f97e4ce 100644
--- a/plugins/newmail_notifier/localization/nl_NL.inc
+++ b/plugins/newmail_notifier/localization/nl_NL.inc
@@ -16,14 +16,14 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-newmail_notifier/
*/
-$labels['basic'] = 'Toon browsermelding bij nieuw bericht';
-$labels['desktop'] = 'Toon desktopmelding bij nieuw bericht';
-$labels['sound'] = 'Speel geluid bij nieuw bericht';
+$labels['basic'] = 'Toon melding in browser bij nieuw bericht';
+$labels['desktop'] = 'Toon melding op bureaublad bij nieuw bericht';
+$labels['sound'] = 'Geluid afspelen bij nieuw bericht';
$labels['test'] = 'Test';
$labels['title'] = 'Nieuwe e-mail!';
$labels['body'] = 'U heeft een nieuw bericht ontvangen.';
$labels['testbody'] = 'Dit is een testmelding.';
-$labels['desktopdisabled'] = 'Desktopmeldingen zijn uitgeschakeld in uw browser.';
-$labels['desktopunsupported'] = 'Uw browser ondersteunt geen desktopmeldingen.';
+$labels['desktopdisabled'] = 'Bureaubladmeldingen zijn uitgeschakeld in uw browser.';
+$labels['desktopunsupported'] = 'Uw browser ondersteunt geen bureaubladmeldingen.';
?>
diff --git a/plugins/password/README b/plugins/password/README
index 25af8cbcd..2c57e0cf6 100644
--- a/plugins/password/README
+++ b/plugins/password/README
@@ -192,8 +192,12 @@
2.6. cPanel (cpanel)
--------------------
- You can specify parameters for HTTP connection to cPanel's admin
- interface. See config.inc.php.dist file for more info.
+ Install cPanel XMLAPI Client Class into Roundcube program/lib directory
+ or any other place in PHP include path. You can get the class from
+ https://raw.github.com/CpanelInc/xmlapi-php/master/xmlapi.php
+
+ You can configure parameters for connection to cPanel's API interface.
+ See config.inc.php.dist file for more info.
2.7. XIMSS/Communigate (ximms)
diff --git a/plugins/password/config.inc.php.dist b/plugins/password/config.inc.php.dist
index e2d8eeb10..9256829aa 100644
--- a/plugins/password/config.inc.php.dist
+++ b/plugins/password/config.inc.php.dist
@@ -269,13 +269,7 @@ $rcmail_config['password_cpanel_username'] = 'username';
$rcmail_config['password_cpanel_password'] = 'password';
// The cPanel port to use
-$rcmail_config['password_cpanel_port'] = 2082;
-
-// Using ssl for cPanel connections?
-$rcmail_config['password_cpanel_ssl'] = true;
-
-// The cPanel theme in use
-$rcmail_config['password_cpanel_theme'] = 'x';
+$rcmail_config['password_cpanel_port'] = 2087;
// XIMSS (Communigate server) Driver options
diff --git a/plugins/password/drivers/cpanel.php b/plugins/password/drivers/cpanel.php
index 79887109b..b71c33ec1 100644
--- a/plugins/password/drivers/cpanel.php
+++ b/plugins/password/drivers/cpanel.php
@@ -4,95 +4,43 @@
* cPanel Password Driver
*
* Driver that adds functionality to change the users cPanel password.
- * The cPanel PHP API code has been taken from: http://www.phpclasses.org/browse/package/3534.html
+ * Originally written by Fulvio Venturelli <fulvio@venturelli.org>
*
- * This driver has been tested with Hostmonster hosting and seems to work fine.
+ * Completely rewritten using the cPanel API2 call Email::passwdpop
+ * as opposed to the original coding against the UI, which is a fragile method that
+ * makes the driver to always return a failure message for any language other than English
+ * see http://trac.roundcube.net/ticket/1487015
*
- * @version 2.0
- * @author Fulvio Venturelli <fulvio@venturelli.org>
+ * This driver has been tested with o2switch hosting and seems to work fine.
+ *
+ * @version 3.0
+ * @author Christian Chech <christian@chech.fr>
*/
class rcube_cpanel_password
{
public function save($curpas, $newpass)
{
+ require_once 'xmlapi.php';
+
$rcmail = rcmail::get_instance();
- // Create a cPanel email object
- $cPanel = new emailAccount($rcmail->config->get('password_cpanel_host'),
- $rcmail->config->get('password_cpanel_username'),
- $rcmail->config->get('password_cpanel_password'),
- $rcmail->config->get('password_cpanel_port'),
- $rcmail->config->get('password_cpanel_ssl'),
- $rcmail->config->get('password_cpanel_theme'),
- $_SESSION['username'] );
+ $this->cuser = $rcmail->config->get('password_cpanel_username');
+
+ // Setup the xmlapi connection
+ $this->xmlapi = new xmlapi($rcmail->config->get('password_cpanel_host'));
+ $this->xmlapi->set_port($rcmail->config->get('password_cpanel_port'));
+ $this->xmlapi->password_auth($this->cuser, $rcmail->config->get('password_cpanel_password'));
+ $this->xmlapi->set_output('json');
+ $this->xmlapi->set_debug(0);
- if ($cPanel->setPassword($newpass)) {
+ if ($this->setPassword($_SESSION['username'], $newpass)) {
return PASSWORD_SUCCESS;
}
else {
return PASSWORD_ERROR;
}
}
-}
-
-
-class HTTP
-{
- function HTTP($host, $username, $password, $port, $ssl, $theme)
- {
- $this->ssl = $ssl ? 'ssl://' : '';
- $this->username = $username;
- $this->password = $password;
- $this->theme = $theme;
- $this->auth = base64_encode($username . ':' . $password);
- $this->port = $port;
- $this->host = $host;
- $this->path = '/frontend/' . $theme . '/';
- }
-
- function getData($url, $data = '')
- {
- $url = $this->path . $url;
- if (is_array($data)) {
- $url = $url . '?';
- foreach ($data as $key => $value) {
- $url .= urlencode($key) . '=' . urlencode($value) . '&';
- }
- $url = substr($url, 0, -1);
- }
-
- $response = '';
- $fp = fsockopen($this->ssl . $this->host, $this->port);
- if (!$fp) {
- return false;
- }
-
- $out = 'GET ' . $url . ' HTTP/1.0' . "\r\n";
- $out .= 'Authorization: Basic ' . $this->auth . "\r\n";
- $out .= 'Connection: Close' . "\r\n\r\n";
- fwrite($fp, $out);
- while (!feof($fp)) {
- $response .= @fgets($fp);
- }
- fclose($fp);
- return $response;
- }
-}
-
-
-class emailAccount
-{
- function emailAccount($host, $username, $password, $port, $ssl, $theme, $address)
- {
- $this->HTTP = new HTTP($host, $username, $password, $port, $ssl, $theme);
- if (strpos($address, '@')) {
- list($this->email, $this->domain) = explode('@', $address);
- }
- else {
- list($this->email, $this->domain) = array($address, '');
- }
- }
/**
* Change email account password
@@ -101,16 +49,24 @@ class emailAccount
* @param string $password email account password
* @return bool
*/
- function setPassword($password)
+ function setPassword($address, $password)
{
- $data['email'] = $this->email;
- $data['domain'] = $this->domain;
+ if (strpos($address, '@')) {
+ list($data['email'], $data['domain']) = explode('@', $address);
+ }
+ else {
+ list($data['email'], $data['domain']) = array($address, '');
+ }
+
$data['password'] = $password;
- $response = $this->HTTP->getData('mail/dopasswdpop.html', $data);
- if (strpos($response, 'success') && !strpos($response, 'failure')) {
+ $query = $this->xmlapi->api2_query($this->cuser, 'Email', 'passwdpop', $data);
+ $query = json_decode($query, true);
+
+ if ($query['cpanelresult']['data'][0]['result'] == 1) {
return true;
}
+
return false;
}
}
diff --git a/plugins/password/localization/nl_NL.inc b/plugins/password/localization/nl_NL.inc
index c2c4599bc..e5b634602 100644
--- a/plugins/password/localization/nl_NL.inc
+++ b/plugins/password/localization/nl_NL.inc
@@ -17,21 +17,21 @@
*/
$labels = array();
-$labels['changepasswd'] = 'Wijzig Wachtwoord';
-$labels['curpasswd'] = 'Huidig Wachtwoord:';
-$labels['newpasswd'] = 'Nieuw Wachtwoord:';
-$labels['confpasswd'] = 'Bevestig Nieuw Wachtwoord:';
+$labels['changepasswd'] = 'Wachtwoord wijzigen';
+$labels['curpasswd'] = 'Huidig wachtwoord:';
+$labels['newpasswd'] = 'Nieuw wachtwoord:';
+$labels['confpasswd'] = 'Bevestig nieuw wachtwoord:';
$messages = array();
-$messages['nopassword'] = 'Vul een wachtwoord in.';
-$messages['nocurpassword'] = 'vul het huidige wachtwoord in.';
+$messages['nopassword'] = 'Vul uw nieuwe wachtwoord in.';
+$messages['nocurpassword'] = 'Vul uw huidige wachtwoord in.';
$messages['passwordincorrect'] = 'Huidig wachtwoord is onjuist.';
$messages['passwordinconsistency'] = 'Wachtwoorden komen niet overeen, probeer het opnieuw.';
-$messages['crypterror'] = 'De server mist een functie om uw wachtwoord et beveiligen.';
-$messages['connecterror'] = 'Kan het nieuwe wachtwoord niet opslaan. Verbindingsfout.';
-$messages['internalerror'] = 'Uw wachtwoord kan niet worden opgeslagen.';
+$messages['crypterror'] = 'Nieuwe wachtwoord kan niet opgeslagen worden; de server mist een versleutelfunctie.';
+$messages['connecterror'] = 'Nieuwe wachtwoord kan niet opgeslagen worden; verbindingsfout.';
+$messages['internalerror'] = 'Uw nieuwe wachtwoord kan niet worden opgeslagen.';
$messages['passwordshort'] = 'Het wachtwoord moet minimaal $length tekens lang zijn.';
-$messages['passwordweak'] = 'Het wachtwoord moet minimaal één nummer en één leesteken bevatten.';
+$messages['passwordweak'] = 'Het wachtwoord moet minimaal één cijfer en één leesteken bevatten.';
$messages['passwordforbidden'] = 'Het wachtwoord bevat tekens die niet toegestaan zijn.';
?>
diff --git a/plugins/password/package.xml b/plugins/password/package.xml
index 9a056dec6..be917917f 100644
--- a/plugins/password/package.xml
+++ b/plugins/password/package.xml
@@ -15,9 +15,9 @@
<email>alec@alec.pl</email>
<active>yes</active>
</lead>
- <date>2012-11-15</date>
+ <date>2013-03-30</date>
<version>
- <release>3.2</release>
+ <release>3.3</release>
<api>2.0</api>
</version>
<stability>
@@ -26,8 +26,7 @@
</stability>
<license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
<notes>
-- Fix wrong (non-specific) error message on crypt or connection error (#1488808)
-- Added option to define IMAP hosts that support password changes - password_hosts
+Added new cPanel driver - fixes localization related issues (#1487015)
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -347,5 +346,21 @@
- Added Samba password (#1488364)
</notes>
</release>
+ <release>
+ <date>2012-11-15</date>
+ <version>
+ <release>3.2</release>
+ <api>2.0</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
+ <notes>
+- Fix wrong (non-specific) error message on crypt or connection error (#1488808)
+- Added option to define IMAP hosts that support password changes - password_hosts
+ </notes>
+ </release>
</changelog>
</package>
diff --git a/plugins/userinfo/localization/nl_NL.inc b/plugins/userinfo/localization/nl_NL.inc
index 8c636e700..8c46ca6c4 100644
--- a/plugins/userinfo/localization/nl_NL.inc
+++ b/plugins/userinfo/localization/nl_NL.inc
@@ -19,7 +19,7 @@
$labels = array();
$labels['userinfo'] = 'Gebruikersinformatie';
$labels['created'] = 'Aangemaakt';
-$labels['lastlogin'] = 'Laatste login';
+$labels['lastlogin'] = 'Laatste aanmelding';
$labels['defaultidentity'] = 'Standaardidentiteit';
?> \ No newline at end of file
diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php
index 675eb7c1b..9e3dc9071 100644
--- a/plugins/virtuser_query/virtuser_query.php
+++ b/plugins/virtuser_query/virtuser_query.php
@@ -59,7 +59,7 @@ class virtuser_query extends rcube_plugin
{
$dbh = $this->get_dbh();
- $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->config['email']));
+ $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['email']));
while ($sql_arr = $dbh->fetch_array($sql_result)) {
if (strpos($sql_arr[0], '@')) {
@@ -78,8 +78,9 @@ class virtuser_query extends rcube_plugin
$result[] = $sql_arr[0];
}
- if ($p['first'])
+ if ($p['first']) {
break;
+ }
}
}
@@ -95,7 +96,7 @@ class virtuser_query extends rcube_plugin
{
$dbh = $this->get_dbh();
- $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escapeSimple($p['email']), $this->config['user']));
+ $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escape($p['email']), $this->config['user']));
if ($sql_arr = $dbh->fetch_array($sql_result)) {
$p['user'] = $sql_arr[0];
@@ -111,7 +112,7 @@ class virtuser_query extends rcube_plugin
{
$dbh = $this->get_dbh();
- $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->config['host']));
+ $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['host']));
if ($sql_arr = $dbh->fetch_array($sql_result)) {
$p['host'] = $sql_arr[0];