Edit LDAP: <%= @ldap.name %>
<%= javascript_tag do %>
var ldapPresets = <%= raw @presets.to_json %>;
function applyPreset(selectElement) {
var preset = selectElement.value;
if (preset && ldapPresets[preset]) {
var config = ldapPresets[preset];
document.getElementById('auth_source_ldap_name').value = config.name;
document.getElementById('auth_source_ldap_port').value = config.port;
document.getElementById('auth_source_ldap_tls').checked = config.tls;
document.getElementById('auth_source_ldap_base_dn').value = config.base_dn;
document.getElementById('auth_source_ldap_filter').value = config.filter;
document.getElementById('auth_source_ldap_attr_login').value = config.attr_login;
document.getElementById('auth_source_ldap_attr_firstname').value = config.attr_firstname;
document.getElementById('auth_source_ldap_attr_lastname').value = config.attr_lastname;
document.getElementById('auth_source_ldap_attr_mail').value = config.attr_mail;
}
}
function testLdapConnection() {
var form = document.getElementById('ldap-form');
var formData = new FormData(form);
var testBtn = document.getElementById('test-btn');
var resultDiv = document.getElementById('test-result');
testBtn.disabled = true;
testBtn.value = 'Testing...';
resultDiv.innerHTML = '';
fetch('<%= url_for(controller: 'ldap_config', action: 'test_connection') %>', {
method: 'POST',
body: formData,
headers: {
'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
}
})
.then(response => response.json())
.then(data => {
testBtn.disabled = false;
testBtn.value = 'Test Connection';
if (data.success) {
resultDiv.innerHTML = '✔ ' + data.message + '';
} else {
resultDiv.innerHTML = '✘ ' + data.message + '';
}
})
.catch(error => {
testBtn.disabled = false;
testBtn.value = 'Test Connection';
resultDiv.innerHTML = 'Error: ' + error + '';
});
}
<% end %>
<%= form_for @ldap, url: ldap_config_update_path(@ldap), method: :patch,
html: { id: 'ldap-form', class: 'tabular' } do |f| %>
<%= render partial: 'ldap_form', locals: { f: f } %>
<%= f.submit 'Save', class: 'button-positive' %>
<%= link_to 'Cancel', { controller: 'ldap_config', action: 'index' }, class: 'button' %>
<% end %>