mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
feat(Ldap Node): Add LDAP node (#4783)
This commit is contained in:
439
packages/nodes-base/nodes/Ldap/LdapDescription.ts
Normal file
439
packages/nodes-base/nodes/Ldap/LdapDescription.ts
Normal file
@@ -0,0 +1,439 @@
|
||||
import type { INodeProperties } from 'n8n-workflow';
|
||||
|
||||
export const ldapFields: INodeProperties[] = [
|
||||
// ----------------------------------
|
||||
// Common
|
||||
// ----------------------------------
|
||||
{
|
||||
displayName: 'DN',
|
||||
name: 'dn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
typeOptions: {
|
||||
alwaysOpenEditWindow: false,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['compare'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the entry to compare',
|
||||
},
|
||||
{
|
||||
displayName: 'DN',
|
||||
name: 'dn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
typeOptions: {
|
||||
alwaysOpenEditWindow: false,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['create'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the entry to create',
|
||||
},
|
||||
{
|
||||
displayName: 'DN',
|
||||
name: 'dn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
typeOptions: {
|
||||
alwaysOpenEditWindow: false,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['delete'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the entry to delete',
|
||||
},
|
||||
{
|
||||
displayName: 'DN',
|
||||
name: 'dn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. cn=john,ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
typeOptions: {
|
||||
alwaysOpenEditWindow: false,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['rename'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the entry to rename',
|
||||
},
|
||||
{
|
||||
displayName: 'DN',
|
||||
name: 'dn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
typeOptions: {
|
||||
alwaysOpenEditWindow: false,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['modify'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the entry to modify',
|
||||
},
|
||||
// ----------------------------------
|
||||
// Compare
|
||||
// ----------------------------------
|
||||
{
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
|
||||
displayName: 'Attribute ID',
|
||||
name: 'id',
|
||||
type: 'options',
|
||||
required: true,
|
||||
default: [],
|
||||
typeOptions: {
|
||||
loadOptionsMethod: 'getAttributesForDn',
|
||||
},
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-description-wrong-for-dynamic-options
|
||||
description: 'The ID of the attribute to compare',
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['compare'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Value',
|
||||
name: 'value',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'The value to compare',
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['compare'],
|
||||
},
|
||||
},
|
||||
},
|
||||
// ----------------------------------
|
||||
// Rename
|
||||
// ----------------------------------
|
||||
{
|
||||
displayName: 'New DN',
|
||||
name: 'targetDn',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. cn=nathan,ou=users,dc=n8n,dc=io',
|
||||
required: true,
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['rename'],
|
||||
},
|
||||
},
|
||||
description: 'The new distinguished name for the entry',
|
||||
},
|
||||
// ----------------------------------
|
||||
// Create
|
||||
// ----------------------------------
|
||||
{
|
||||
displayName: 'Attributes',
|
||||
name: 'attributes',
|
||||
placeholder: 'Add Attributes',
|
||||
description: 'Attributes to add to the entry',
|
||||
type: 'fixedCollection',
|
||||
typeOptions: {
|
||||
multipleValues: true,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['create'],
|
||||
},
|
||||
},
|
||||
default: {},
|
||||
options: [
|
||||
{
|
||||
name: 'attribute',
|
||||
displayName: 'Attribute',
|
||||
values: [
|
||||
{
|
||||
displayName: 'Attribute ID',
|
||||
name: 'id',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'The ID of the attribute to add',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
displayName: 'Value',
|
||||
name: 'value',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'Value of the attribute to set',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
// ----------------------------------
|
||||
// Update
|
||||
// ----------------------------------
|
||||
{
|
||||
displayName: 'Update Attributes',
|
||||
name: 'attributes',
|
||||
placeholder: 'Update Attributes',
|
||||
type: 'fixedCollection',
|
||||
typeOptions: {
|
||||
multipleValues: true,
|
||||
sortable: true,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['update'],
|
||||
},
|
||||
},
|
||||
description: 'Update entry attributes',
|
||||
default: {},
|
||||
options: [
|
||||
{
|
||||
name: 'add',
|
||||
displayName: 'Add',
|
||||
values: [
|
||||
{
|
||||
displayName: 'Attribute ID',
|
||||
name: 'id',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'The ID of the attribute to add',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
displayName: 'Value',
|
||||
name: 'value',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'Value of the attribute to set',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'replace',
|
||||
displayName: 'Replace',
|
||||
values: [
|
||||
{
|
||||
displayName: 'Attribute ID',
|
||||
name: 'id',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'The ID of the attribute to replace',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
displayName: 'Value',
|
||||
name: 'value',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'Value of the attribute to replace',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'delete',
|
||||
displayName: 'Remove',
|
||||
values: [
|
||||
{
|
||||
displayName: 'Attribute ID',
|
||||
name: 'id',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'The ID of the attribute to remove',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
displayName: 'Value',
|
||||
name: 'value',
|
||||
type: 'string',
|
||||
default: '',
|
||||
description: 'Value of the attribute to remove',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
// ----------------------------------
|
||||
// Search
|
||||
// ----------------------------------
|
||||
{
|
||||
displayName: 'Base DN',
|
||||
name: 'baseDN',
|
||||
type: 'string',
|
||||
default: '',
|
||||
placeholder: 'e.g. ou=users, dc=n8n, dc=io',
|
||||
required: true,
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
description: 'The distinguished name of the subtree to search in',
|
||||
},
|
||||
{
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
|
||||
displayName: 'Search For',
|
||||
name: 'searchFor',
|
||||
type: 'options',
|
||||
default: [],
|
||||
typeOptions: {
|
||||
loadOptionsMethod: 'getObjectClasses',
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-description-wrong-for-dynamic-options
|
||||
description: 'Directory object class to search for',
|
||||
},
|
||||
{
|
||||
displayName: 'Custom Filter',
|
||||
name: 'customFilter',
|
||||
type: 'string',
|
||||
default: '(objectclass=*)',
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
searchFor: ['custom'],
|
||||
},
|
||||
},
|
||||
description: 'Custom LDAP filter. Escape these chars * ( ) \\ with a backslash "\\".',
|
||||
},
|
||||
{
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
|
||||
displayName: 'Attribute',
|
||||
name: 'attribute',
|
||||
type: 'options',
|
||||
required: true,
|
||||
default: [],
|
||||
typeOptions: {
|
||||
loadOptionsMethod: 'getAttributes',
|
||||
},
|
||||
// eslint-disable-next-line n8n-nodes-base/node-param-description-wrong-for-dynamic-options
|
||||
description: 'Attribute to search for',
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
hide: {
|
||||
searchFor: ['custom'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Search Text',
|
||||
name: 'searchText',
|
||||
type: 'string',
|
||||
default: '',
|
||||
required: true,
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
hide: {
|
||||
searchFor: ['custom'],
|
||||
},
|
||||
},
|
||||
description: 'Text to search for, Use * for a wildcard',
|
||||
},
|
||||
{
|
||||
displayName: 'Return All',
|
||||
name: 'returnAll',
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
description: 'Whether to return all results or only up to a given limit',
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Limit',
|
||||
name: 'limit',
|
||||
type: 'number',
|
||||
default: 50,
|
||||
description: 'Max number of results to return',
|
||||
typeOptions: {
|
||||
minValue: 1,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
returnAll: [false],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Options',
|
||||
name: 'options',
|
||||
type: 'collection',
|
||||
placeholder: 'Add Option',
|
||||
default: {},
|
||||
displayOptions: {
|
||||
show: {
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
displayName: 'Attribute Names or IDs',
|
||||
name: 'attributes',
|
||||
type: 'multiOptions',
|
||||
typeOptions: {
|
||||
loadOptionsMethod: 'getAttributes',
|
||||
},
|
||||
default: [],
|
||||
description:
|
||||
'Comma-separated list of attributes to return. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.',
|
||||
},
|
||||
{
|
||||
displayName: 'Page Size',
|
||||
name: 'pageSize',
|
||||
type: 'number',
|
||||
default: 1000,
|
||||
typeOptions: {
|
||||
minValue: 0,
|
||||
},
|
||||
description:
|
||||
'Maximum number of results to request at one time. Set to 0 to disable paging.',
|
||||
},
|
||||
{
|
||||
displayName: 'Scope',
|
||||
name: 'scope',
|
||||
default: 'sub',
|
||||
description:
|
||||
'The set of entries at or below the BaseDN that may be considered potential matches',
|
||||
type: 'options',
|
||||
options: [
|
||||
{
|
||||
name: 'Base Object',
|
||||
value: 'base',
|
||||
},
|
||||
{
|
||||
name: 'Single Level',
|
||||
value: 'one',
|
||||
},
|
||||
{
|
||||
name: 'Whole Subtree',
|
||||
value: 'sub',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user