From 801861fe3487dd0ba6f40673a0d9003b809d871f Mon Sep 17 00:00:00 2001 From: lauri457 <55710064+lauri457@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:41:29 +1100 Subject: [PATCH 1/4] Create LDAPquery.js --- .../Query ldap server/LDAPquery.js | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Server-Side Components/Script Includes/Query ldap server/LDAPquery.js diff --git a/Server-Side Components/Script Includes/Query ldap server/LDAPquery.js b/Server-Side Components/Script Includes/Query ldap server/LDAPquery.js new file mode 100644 index 0000000000..8b964ca03e --- /dev/null +++ b/Server-Side Components/Script Includes/Query ldap server/LDAPquery.js @@ -0,0 +1,56 @@ +var LDAPquery = Class.create(); +LDAPquery.prototype = { + initialize: function () { + this.LDAP_CONFIG = ''; + this.RDN = ''; + this.FILTER = ''; + this.BOOLEAN = true; + this.ROWS_PAGE = 1; + this.GLIDE_LDAP = new GlideLDAP(); + }, + + setRDN: function (rdn) { + this.RDN = rdn || ''; + return this; + }, + + setFilter: function (filter) { + this.FILTER = filter || ''; + return this; + }, + + setPagination: function (rows) { + this.ROWS_PAGE = rows || 1; + return this; + }, + + setConfig: function (config) { + this.LDAP_CONFIG = config || ''; + this.GLIDE_LDAP.setConfigID(config) + return this; + }, + + getOne: function () { + if (!this.LDAP_CONFIG) { + NiceError.raise('no ldap config defined'); + } + var entry; + + if (entry = this._query().next()) { + return j2js(entry); + } + return null; + }, + + getIterable: function () { + if (!this.LDAP_CONFIG) { + NiceError.raise('no ldap config defined'); + } + return this._query(); + }, + + _query: function () { + return this.GLIDE_LDAP.getMatching(this.RDN, this.FILTER, this.BOOLEAN, this.ROWS_PAGE); + }, + type: 'LDAPquery' +}; From a1f0f02feb644ccc25d0ca397b4a2076b5d34788 Mon Sep 17 00:00:00 2001 From: lauri457 <55710064+lauri457@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:52:11 +1100 Subject: [PATCH 2/4] Create README.md --- .../Query ldap server/README.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Server-Side Components/Script Includes/Query ldap server/README.md diff --git a/Server-Side Components/Script Includes/Query ldap server/README.md b/Server-Side Components/Script Includes/Query ldap server/README.md new file mode 100644 index 0000000000..4ff0327676 --- /dev/null +++ b/Server-Side Components/Script Includes/Query ldap server/README.md @@ -0,0 +1,55 @@ +# Query ldap server by config sys_id + +# How to use it? +Configure LDAP server in *ldap_server_config* table +Query server from serverside script using script include LDAPQuery + +# Example 1: get one entry + +``` +var result = new LDAPquery() + .setRDN('') //set relative start + .setFilter('uid=einstein') //set filter + .setConfig('2fd003c083e07e10557ff0d6feaad3d7') //set the sys_id for ldap_server_config record + .getOne(); //returns first entry as js object +gs.info(result.telephoneNumber); + +output: +*** Script: 314-159-2653 + +``` + +# Example 2: get the iterable for query + +``` +var result = new LDAPquery() + .setRDN('ou=scientists') + .setPagination(1000) //set how many records per page + .setConfig('2fd003c083e07e10557ff0d6feaad3d7') + .getIterable(); //returns iterable result object + +var item; +while (item = result.next()) { + gs.info(JSON.stringify(j2js(item), null, 2)); //note that next returns a java object, hence the j2js to convert to js +} + +output: +*** Script: { + "dn": "ou=scientists,dc=example,dc=com", + "objectClass": "groupOfUniqueNames^top", + "ou": "scientists", + "source": "ldap:ou=scientists,dc=example,dc=com", + "uniqueMember": "uid=einstein,dc=example,dc=com^uid=tesla,dc=example,dc=com^uid=newton,dc=example,dc=com^uid=galileo,dc=example,dc=com", + "cn": "Scientists" +} +*** Script: { + "dn": "ou=italians,ou=scientists,dc=example,dc=com", + "objectClass": "groupOfUniqueNames^top", + "ou": "italians", + "source": "ldap:ou=italians,ou=scientists,dc=example,dc=com", + "uniqueMember": "uid=tesla,dc=example,dc=com", + "cn": "Italians" +} +LDAP SEARCH: >>Next Page + +``` From 9c8590e1578daa696933cc4eb7d5679288100712 Mon Sep 17 00:00:00 2001 From: lauri457 <55710064+lauri457@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:54:52 +1100 Subject: [PATCH 3/4] Update README.md --- .../Script Includes/Query ldap server/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server-Side Components/Script Includes/Query ldap server/README.md b/Server-Side Components/Script Includes/Query ldap server/README.md index 4ff0327676..a17998b6f7 100644 --- a/Server-Side Components/Script Includes/Query ldap server/README.md +++ b/Server-Side Components/Script Includes/Query ldap server/README.md @@ -6,7 +6,7 @@ Query server from serverside script using script include LDAPQuery # Example 1: get one entry -``` +```javascript var result = new LDAPquery() .setRDN('') //set relative start .setFilter('uid=einstein') //set filter @@ -21,7 +21,7 @@ output: # Example 2: get the iterable for query -``` +```javascript var result = new LDAPquery() .setRDN('ou=scientists') .setPagination(1000) //set how many records per page From 1e1d9b9b4731fcaddd393807f3332a70a3277ce0 Mon Sep 17 00:00:00 2001 From: lauri457 <55710064+lauri457@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:56:11 +1100 Subject: [PATCH 4/4] Update README.md --- .../Script Includes/Query ldap server/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Server-Side Components/Script Includes/Query ldap server/README.md b/Server-Side Components/Script Includes/Query ldap server/README.md index a17998b6f7..8af5bbdb80 100644 --- a/Server-Side Components/Script Includes/Query ldap server/README.md +++ b/Server-Side Components/Script Includes/Query ldap server/README.md @@ -13,10 +13,10 @@ var result = new LDAPquery() .setConfig('2fd003c083e07e10557ff0d6feaad3d7') //set the sys_id for ldap_server_config record .getOne(); //returns first entry as js object gs.info(result.telephoneNumber); - +``` +``` output: *** Script: 314-159-2653 - ``` # Example 2: get the iterable for query @@ -32,7 +32,8 @@ var item; while (item = result.next()) { gs.info(JSON.stringify(j2js(item), null, 2)); //note that next returns a java object, hence the j2js to convert to js } - +``` +``` output: *** Script: { "dn": "ou=scientists,dc=example,dc=com", @@ -51,5 +52,4 @@ output: "cn": "Italians" } LDAP SEARCH: >>Next Page - ```