diff --git a/app/models/auth_source_ldap.rb b/app/models/auth_source_ldap.rb index b18b657..6dda73d 100644 --- a/app/models/auth_source_ldap.rb +++ b/app/models/auth_source_ldap.rb @@ -56,11 +56,16 @@ class AuthSourceLdap < AuthSource raise AuthSourceException.new(e.message) end - # test the connection to the LDAP + # Test the connection to the LDAP def test_connection with_timeout do ldap_con = initialize_ldap_con(self.account, self.account_password) ldap_con.open { } + + if self.account.present? && self.account_password.present? + ldap_auth = authenticate_dn(self.account, self.account_password) + raise AuthSourceException.new(l(:error_ldap_bind_credentials)) if !ldap_auth + end end rescue *NETWORK_EXCEPTIONS => e raise AuthSourceException.new(e.message) diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 8cd0a88..2df14bc 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1182,3 +1182,4 @@ ar: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/az.yml b/config/locales/az.yml index 9c41d4a..071c1ea 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -1277,3 +1277,4 @@ az: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/bg.yml b/config/locales/bg.yml index a61315c..8f3f16c 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1173,3 +1173,4 @@ bg: description_date_from: Въведете начална дата description_date_to: Въведете крайна дата text_repository_identifier_info: 'Позволени са малки букви (a-z), цифри, тирета и _.
Промяна след създаването му не е възможна.' + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/bs.yml b/config/locales/bs.yml index ca4bd07..6939e24 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -1195,3 +1195,4 @@ bs: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/ca.yml b/config/locales/ca.yml index d6674a5..2261553 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -195,6 +195,7 @@ ca: error_unable_delete_issue_status: "No s'ha pogut suprimir l'estat de l'assumpte" error_unable_to_connect: "No s'ha pogut connectar (%{value})" warning_attachments_not_saved: "No s'han pogut desar %{count} fitxers." + error_ldap_bind_credentials: "Compte/Contrasenya LDAP incorrecte" mail_subject_lost_password: "Contrasenya de %{value}" mail_body_lost_password: "Per a canviar la contrasenya, feu clic en l'enllaç següent:" diff --git a/config/locales/cs.yml b/config/locales/cs.yml index a888e89..80e2a2e 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1183,3 +1183,4 @@ cs: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/da.yml b/config/locales/da.yml index e4543d0..c41e3f5 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1199,3 +1199,4 @@ da: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/de.yml b/config/locales/de.yml index 7fc27bd..fbdafb0 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1191,3 +1191,4 @@ de: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Standardwerte für neue Benutzer + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/el.yml b/config/locales/el.yml index d202273..0309637 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1182,3 +1182,4 @@ el: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 2d1e86a..3a9f5b2 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1184,3 +1184,4 @@ en-GB: setting_attachment_extensions_allowed: Allowed extensions setting_attachment_extensions_denied: Disallowed extensions label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/en.yml b/config/locales/en.yml index 7d98034..1f7f6c6 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -212,6 +212,7 @@ en: error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below" error_can_not_read_import_file: "An error occurred while reading the file to import" error_attachment_extension_not_allowed: "Attachment extension %{extension} is not allowed" + error_ldap_bind_credentials: "Invalid LDAP Account/Password" mail_subject_lost_password: "Your %{value} password" mail_body_lost_password: 'To change your password, click on the following link:' diff --git a/config/locales/es-PA.yml b/config/locales/es-PA.yml index 2f5b334..72dfcb4 100644 --- a/config/locales/es-PA.yml +++ b/config/locales/es-PA.yml @@ -255,6 +255,7 @@ es-PA: error_scm_annotate_big_text_file: "La entrada no puede anotarse, al superar el tamaño máximo para archivos de texto." error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}" error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio." + error_ldap_bind_credentials: "Cuenta/Contraseña LDAP incorrecta" field_account: Cuenta field_activity: Actividad field_admin: Administrador @@ -932,7 +933,7 @@ es-PA: label_subtask_plural: Subtareas label_project_copy_notifications: Enviar notificaciones por correo electrónico durante la copia del proyecto error_can_not_delete_custom_field: Fue imposible eliminar el campo personalizado - error_unable_to_connect: Fue imposible conectar con (%{value}) + error_unable_to_connect: Fue imposible conectarse (%{value}) error_can_not_remove_role: Este rol está en uso y no puede ser eliminado. error_can_not_delete_tracker: Este tipo contiene incidencias y no puede ser eliminado. field_principal: Principal diff --git a/config/locales/es.yml b/config/locales/es.yml index b62e066..cf497ec 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -253,6 +253,7 @@ es: error_scm_annotate_big_text_file: "La entrada no puede anotarse, al superar el tamaño máximo para ficheros de texto." error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}" error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio." + error_ldap_bind_credentials: Cuenta/Contraseña LDAP incorrecta field_account: Cuenta field_activity: Actividad field_admin: Administrador @@ -930,7 +931,7 @@ es: label_subtask_plural: Subtareas label_project_copy_notifications: Enviar notificaciones por correo electrónico durante la copia del proyecto error_can_not_delete_custom_field: Fue imposible eliminar el campo personalizado - error_unable_to_connect: Fue imposible conectar con (%{value}) + error_unable_to_connect: Fue imposible conectarse (%{value}) error_can_not_remove_role: Este rol está en uso y no puede ser eliminado. error_can_not_delete_tracker: Este tipo contiene peticiones y no puede ser eliminado. field_principal: Principal diff --git a/config/locales/et.yml b/config/locales/et.yml index 36201f4..3556602 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1186,3 +1186,4 @@ et: label_any_open_issues: "Kõik avatud teemad" label_no_open_issues: "Mitte ühtki avatud teemat" label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 20e7222..fd26642 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1183,3 +1183,4 @@ eu: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 3ffc474..0e91931 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1183,3 +1183,4 @@ fa: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 5021546..995ee39 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1203,3 +1203,4 @@ fi: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 43873ca..de330b5 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -232,6 +232,7 @@ fr: error_invalid_csv_file_or_settings: "Le fichier n'est pas un fichier CSV ou n'est pas conforme aux paramètres sélectionnés" error_can_not_read_import_file: "Une erreur est survenue lors de la lecture du fichier à importer" error_attachment_extension_not_allowed: "L'extension %{extension} n'est pas autorisée" + error_ldap_bind_credentials: "Identifiant ou mot de passe LDAP incorrect" mail_subject_lost_password: "Votre mot de passe %{value}" mail_body_lost_password: 'Pour changer votre mot de passe, cliquez sur le lien suivant :' diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 381c2c9..d49b3e3 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1190,3 +1190,4 @@ gl: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/he.yml b/config/locales/he.yml index cf5a1dd..c466ffb 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1187,3 +1187,4 @@ he: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 079ddfd..bdfe5f8 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -1181,3 +1181,4 @@ hr: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 026d89f..e50a1ba 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1201,3 +1201,4 @@ label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/id.yml b/config/locales/id.yml index 01a9304..c9ac280 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1186,3 +1186,4 @@ id: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/it.yml b/config/locales/it.yml index 0f9da36..fcd86bb 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1177,3 +1177,4 @@ it: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 7fe0d40..90d0c5c 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1195,3 +1195,4 @@ ja: label_any_open_issues: 未完了のチケット label_no_open_issues: なし または完了したチケット label_default_values_for_new_users: 新しいユーザーのデフォルト設定 + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 0097370..48b87cc 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1226,3 +1226,4 @@ ko: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 6498353..f793a99 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1241,3 +1241,4 @@ lt: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/lv.yml b/config/locales/lv.yml index bcee88d..6f65b8e 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1176,3 +1176,4 @@ lv: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 6c7a2af..1b297c9 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -1182,3 +1182,4 @@ mk: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/mn.yml b/config/locales/mn.yml index c5a74e0..79c1071 100644 --- a/config/locales/mn.yml +++ b/config/locales/mn.yml @@ -1183,3 +1183,4 @@ mn: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 9a2a175..70be213 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1161,3 +1161,4 @@ nl: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/no.yml b/config/locales/no.yml index 35f2b8e..4168094 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1172,3 +1172,4 @@ label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 50cd2f3..0a2d947 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1197,3 +1197,4 @@ pl: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 8802ba3..491d419 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -196,6 +196,7 @@ pt-BR: error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projeto' error_no_tracker_in_project: 'Não há um tipo de tarefa associado a este projeto. Favor verificar as configurações do projeto.' error_no_default_issue_status: 'A situação padrão para tarefa não está definida. Favor verificar sua configuração (Vá em "Administração -> Situação da tarefa").' + error_ldap_bind_credentials: "Conta/Palavra-chave do LDAP não é válida" mail_subject_lost_password: "Sua senha do %{value}." mail_body_lost_password: 'Para mudar sua senha, clique no link abaixo:' diff --git a/config/locales/pt.yml b/config/locales/pt.yml index da696f2..8df9b38 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -184,6 +184,7 @@ pt: error_scm_command_failed: "Ocorreu um erro ao tentar aceder ao repositório: %{value}" error_scm_annotate: "A entrada não existe ou não pode ser anotada." error_issue_not_found_in_project: 'A tarefa não foi encontrada ou não pertence a este projeto.' + error_ldap_bind_credentials: "Conta/Palavra-chave do LDAP não é válida" mail_subject_lost_password: "Palavra-chave de %{value}" mail_body_lost_password: 'Para mudar a sua palavra-chave, clique na ligação abaixo:' diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 2e89625..dde92c9 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -1177,3 +1177,4 @@ ro: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 952fc8e..0d71a9e 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1283,3 +1283,4 @@ ru: label_any_open_issues: любые открытые задачи label_no_open_issues: нет открытых задач label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 0508f1f..2800da2 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1172,3 +1172,4 @@ sk: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 5674222..c772fdc 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1182,3 +1182,4 @@ sl: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sq.yml b/config/locales/sq.yml index fd2fdd3..6742f89 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1178,3 +1178,4 @@ sq: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sr-YU.yml b/config/locales/sr-YU.yml index 3b30b09..3956b1a 100644 --- a/config/locales/sr-YU.yml +++ b/config/locales/sr-YU.yml @@ -1184,3 +1184,4 @@ sr-YU: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 89e5cfa..83d4cee 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1183,3 +1183,4 @@ sr: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 73be757..8e9b6ec 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1215,3 +1215,4 @@ sv: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/th.yml b/config/locales/th.yml index 122fcd4..c0abce3 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1179,3 +1179,4 @@ th: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/tr.yml b/config/locales/tr.yml index d1a9346..e9fcc42 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1189,3 +1189,4 @@ tr: label_any_open_issues: herhangi bir açık iş label_no_open_issues: hiçbir açık iş label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 077bfba..684fdeb 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1177,3 +1177,4 @@ uk: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 632e446..2d72670 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1235,3 +1235,4 @@ vi: label_any_open_issues: any open issues label_no_open_issues: no open issues label_default_values_for_new_users: Default values for new users + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 8d83868..9ca14eb 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1256,3 +1256,4 @@ description_date_from: 輸入起始日期 description_date_to: 輸入結束日期 text_repository_identifier_info: '僅允許使用小寫英文字母 (a-z), 阿拉伯數字, 虛線與底線。
一旦儲存之後, 代碼便無法再次被更改。' + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/config/locales/zh.yml b/config/locales/zh.yml index ab1d87f..9355284 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1177,3 +1177,4 @@ zh: label_any_open_issues: 任意进行中的问题 label_no_open_issues: 任意已关闭的问题 label_default_values_for_new_users: 新用户默认值 + error_ldap_bind_credentials: Invalid LDAP Account/Password diff --git a/test/unit/auth_source_ldap_test.rb b/test/unit/auth_source_ldap_test.rb index fcfab36..a436cda 100644 --- a/test/unit/auth_source_ldap_test.rb +++ b/test/unit/auth_source_ldap_test.rb @@ -24,6 +24,26 @@ class AuthSourceLdapTest < ActiveSupport::TestCase def setup end + def test_initialize + auth_source = AuthSourceLdap.new + assert_nil auth_source.id + assert_equal "AuthSourceLdap", auth_source.type + assert_equal "", auth_source.name + assert_nil auth_source.host + assert_nil auth_source.port + assert_nil auth_source.account + assert_equal "", auth_source.account_password + assert_nil auth_source.base_dn + assert_nil auth_source.attr_login + assert_nil auth_source.attr_firstname + assert_nil auth_source.attr_lastname + assert_nil auth_source.attr_mail + assert_equal false, auth_source.onthefly_register + assert_equal false, auth_source.tls + assert_nil auth_source.filter + assert_nil auth_source.timeout + end + def test_create a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName') assert a.save @@ -135,6 +155,103 @@ class AuthSourceLdapTest < ActiveSupport::TestCase results = AuthSource.search("exa") assert_equal [], results end + + def test_ldap_with_correct_host + auth_source = AuthSourceLdap.find(1) + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_nothing_raised Net::LDAP::Error do + auth_source.test_connection + end + end + + def test_ldap_with_incorrect_host + auth_source = AuthSourceLdap.find(1) + auth_source.host = "badhost" + auth_source.save! + + assert_equal "badhost", auth_source.host + assert_equal 389, auth_source.port + assert_raise Net::LDAP::Error do + auth_source.test_connection + end + end + + def test_ldap_with_correct_port + auth_source = AuthSourceLdap.find(1) + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_nothing_raised Net::LDAP::Error do + auth_source.test_connection + end + end + + def test_ldap_with_incorrect_port + auth_source = AuthSourceLdap.find(1) + auth_source.port = 1234 + auth_source.save! + + assert_equal "127.0.0.1", auth_source.host + assert_equal 1234, auth_source.port + assert_raise Net::LDAP::Error do + auth_source.test_connection + end + end + + def test_ldap_bind_with_account_and_password + auth_source = AuthSourceLdap.find(1) + auth_source.account = "cn=Manager,dc=redmine,dc=org" + auth_source.account_password = "secret" + auth_source.save! + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_equal "cn=Manager,dc=redmine,dc=org", auth_source.account + assert_equal "secret", auth_source.account_password + assert_nil auth_source.test_connection + end + + def test_ldap_bind_without_account_and_password + auth_source = AuthSourceLdap.find(1) + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_nil auth_source.account + assert_equal "", auth_source.account_password + assert_nil auth_source.test_connection + end + + def test_ldap_bind_with_incorrect_account + auth_source = AuthSourceLdap.find(1) + auth_source.account = "cn=baduser,dc=redmine,dc=org" + auth_source.account_password = "secret" + auth_source.save! + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_equal "cn=baduser,dc=redmine,dc=org", auth_source.account + assert_equal "secret", auth_source.account_password + assert_raise AuthSourceException do + auth_source.test_connection + end + end + + def test_ldap_bind_with_incorrect_password + auth_source = AuthSourceLdap.find(1) + auth_source.account = "cn=Manager,dc=redmine,dc=org" + auth_source.account_password = "badpassword" + auth_source.save! + + assert_equal "127.0.0.1", auth_source.host + assert_equal 389, auth_source.port + assert_equal "cn=Manager,dc=redmine,dc=org", auth_source.account + assert_equal "badpassword", auth_source.account_password + assert_raise AuthSourceException do + auth_source.test_connection + end + end else puts '(Test LDAP server not configured)' end