diff --git a/definitions/en_CA.js b/definitions/en_CA.js
index b93d16cc..c7e6c35a 100644
--- a/definitions/en_CA.js
+++ b/definitions/en_CA.js
@@ -4224,6 +4224,11 @@ module.exports = function(s,config,lang){
"fieldType": 'div',
"id": "alternate-logins"
},
+ {
+ "fieldType": "btn-group",
+ "forForm": true,
+ "btns": [],
+ },
]
},
"2-Factor Authentication": {
@@ -5394,29 +5399,11 @@ module.exports = function(s,config,lang){
"name": lang["LDAP"],
"color": "forestgreen",
"info": [
- {
- "name": "ldap_enable",
- "field": lang.Enabled,
- "description": "Enable LDAP authentication for this Group.",
- "default": "0",
- "example": "",
- "fieldType": "select",
- "possible": [
- {
- "name": lang.No,
- "value": "0"
- },
- {
- "name": lang.Yes,
- "value": "1"
- }
- ]
- },
{
"name": "ldap_url",
"field": lang.URL,
"description": "",
- "example": "",
+ "example": "ldap://127.0.0.1:389",
"possible": ""
},
{
diff --git a/libs/auth/google.js b/libs/auth/google.js
index 920b0eb8..e9a69f49 100644
--- a/libs/auth/google.js
+++ b/libs/auth/google.js
@@ -95,9 +95,8 @@ module.exports = (s,config,lang,app) => {
}
return response
}
- s.definitions["Account Settings"].blocks["AlternateLogins"].info.push({
- "form-group-class-pre-layer": "form-group",
- "fieldType": "btn",
+ const alternateLoginsFieldList = s.definitions["Account Settings"].blocks["AlternateLogins"].info
+ alternateLoginsFieldList[alternateLoginsFieldList.length - 1].btns.push({
"class": `btn-info google-sign-in`,
"btnContent": ` ${lang['Link Google Account']}`,
})
diff --git a/libs/auth/ldap.js b/libs/auth/ldap.js
index 1364b9ff..784d500b 100644
--- a/libs/auth/ldap.js
+++ b/libs/auth/ldap.js
@@ -75,7 +75,6 @@ module.exports = (s,config,lang,app) => {
return response
}
async function updateLdapBaseDetails(params,updateFields){
- const enabled = updateFields.ldap_enable
const url = updateFields.ldap_url
const bindDN = updateFields.ldap_bindDN
const searchBase = updateFields.ldap_searchBase
@@ -90,7 +89,6 @@ module.exports = (s,config,lang,app) => {
],
})
const userDetails = JSON.parse(userResponse.rows[0].details)
- userDetails.ldap_enable = enabled
userDetails.ldap_url = url
userDetails.ldap_bindDN = bindDN
userDetails.ldap_searchBase = searchBase
@@ -148,9 +146,8 @@ module.exports = (s,config,lang,app) => {
}
return response
}
- s.definitions["Account Settings"].blocks["AlternateLogins"].info.push({
- "form-group-class-pre-layer": "form-group",
- "fieldType": "btn",
+ const alternateLoginsFieldList = s.definitions["Account Settings"].blocks["AlternateLogins"].info
+ alternateLoginsFieldList[alternateLoginsFieldList.length - 1].btns.push({
"class": `btn-info ldap-sign-in`,
"btnContent": ` ${lang['Link LDAP Account']}`,
})
diff --git a/web/libs/js/dash2.alternateLogins.js b/web/libs/js/dash2.alternateLogins.js
index c0d6df1b..8374c284 100644
--- a/web/libs/js/dash2.alternateLogins.js
+++ b/web/libs/js/dash2.alternateLogins.js
@@ -6,17 +6,19 @@ $(document).ready(function(){
alternateLoginsBox.empty()
if(rows.length > 0){
$.each(rows,function(n,row){
- alternateLoginsBox.append(`
-
-
-
${row.type}
+ alternateLoginsBox.append(`
+
+
+ ${row.type}
-
+
+
${moment(row.lastLogin).format('YYYY-MM-DD hh:mm:ss A')}
-
`)
})
diff --git a/web/libs/js/dash2.ldapSignIn.js b/web/libs/js/dash2.ldapSignIn.js
index e1bffa2a..84de83bc 100644
--- a/web/libs/js/dash2.ldapSignIn.js
+++ b/web/libs/js/dash2.ldapSignIn.js
@@ -1,6 +1,6 @@
$(document).ready(function(){
$('#settings').on('click','.ldap-sign-in',function(){
- var signInWindow = window.open(getApiPrefix('loginTokenAddLDAP'),'popup','width=300,height=300,scrollbars=no,resizable=no');
+ var signInWindow = window.open(getApiPrefix('loginTokenAddLDAP'),'popup','width=500,height=700,scrollbars=no,resizable=no');
if(!signInWindow || signInWindow.closed || typeof signInWindow.closed=='undefined'){
alert(`Your Popup Blocker is disabling this feature.`)
}else{
diff --git a/web/pages/blocks/fieldBuilders.ejs b/web/pages/blocks/fieldBuilders.ejs
index ce5d7857..a974a377 100644
--- a/web/pages/blocks/fieldBuilders.ejs
+++ b/web/pages/blocks/fieldBuilders.ejs
@@ -144,6 +144,22 @@ drawBlock = function(monitorSettings){
var fieldElement = ''
var preFill = field.preFill || ''
switch(fieldType){
+ case'btn-group':
+ let fieldBtnContent = ``
+ field.btns.forEach((btn) => {
+ let btnClass = []
+ let btnAttributes = []
+ const btnBaseElement = btn.forForm || field.forForm ? 'button' : 'a'
+ if(btn.class){
+ btnClass.push(`${btn.class}`)
+ }
+ if(btn.attribute){
+ btnAttributes.push(btn.attribute)
+ }
+ fieldBtnContent += `<${btnBaseElement} class="btn ${btnClass.join(' ')}" ${btnAttributes.join(' ')}>${btn.btnContent}${btnBaseElement}>`
+ })
+ fieldElement = `
${fieldBtnContent}
`
+ break;
case'btn':
baseElement = field.forForm ? 'button' : 'a'
fieldElement = `<${baseElement} class="btn btn-block ${fieldClass.join(' ')}" ${attributes.join(' ')}>${field.btnContent}${baseElement}>`
@@ -190,7 +206,7 @@ drawBlock = function(monitorSettings){
if(field['form-group-class-pre-layer']){ %>
<%
- var buildOptions = function(field,possiblities){
- if(!field)console.error('field',field)
- var fieldElement = ''
- possiblities.forEach(function(option){
- if(option.optgroup){
- fieldElement += '
'
- }else{
- var selected = ''
- if(option.value === field.default){
- selected = 'selected'
- }
- fieldElement += '
'
- }
- })
- return fieldElement
- }
- var drawBlock = function(monitorSettings){
- if(monitorSettings.evaluation && !eval(monitorSettings.evaluation)){
- return
- }
- var attributes = []
- var styles = []
- var sectionClass = []
- var headerTitle = monitorSettings.headerTitle || lang[monitorSettings.name] || monitorSettings.name
- if(monitorSettings.hidden === true){
- styles.push('display:none')
- }
- if(monitorSettings.style){
- styles.push(monitorSettings.style)
- }
- if(monitorSettings.isSection === true){
- attributes.push('section')
- }
- if(monitorSettings.attribute){
- attributes.push(monitorSettings.attribute)
- }
- if(!monitorSettings.id){
- var userSettingsId = monitorSettings.name.replace(/[^a-zA-Z ]/g, '').replace(/[^a-zA-Z ]/g, '').replace(/ /g, '')
- monitorSettings.id = userSettingsId
- }
- attributes.push(`id="${monitorSettings.id}"`)
- if(monitorSettings.color){
- sectionClass.push(monitorSettings.color)
- }
- if(monitorSettings['section-class']){
- sectionClass.push(monitorSettings['section-class'])
- }
- if(monitorSettings.isAdvanced){ %>
-
- <% }
- }
+ include fieldBuilders.ejs
%>
<% Object.keys(define['Account Settings'].blocks).forEach(function(blockKey){
var accountSettings = define['Account Settings'].blocks[blockKey]