LdapNgPlugin
Query and display data from an LDAP directory
Introduction
This plugin provides an interface to query an LDAP directory and display the results in a TWiki topic. It is a complete rewrite of the
TWiki:Plugins.LdapPlugin by
TWiki:Main.GerardHickey to provide greater flexibility and performance based on the
TWiki:Plugins.LdapContrib package.
Syntax Rules
LDAP
%LDAP{ "...filter..." ... }%
%LDAP{ filter="...filter..." ... }%
Query an LDAP directory.
Parameters:
-
filter: the LDAP query string
-
host: host IP or name to connect to
-
port: port to of the host
-
version: protocol version; possible values: 2,3
-
ssl: use ssl to bind to the server; possible values 0,1
-
base: base dn of the (sub)tree to search in; if base is written in brackets (e.g. 'base="(ou=people)"') then it is prepended to the default base of the LdapContrib
-
scope: scope of search; possible values: sub, base, one
-
format: format string used to display a database record
-
header: header to prepend the output; default: '$dn'
-
footer: footer to appended to the output
-
sep: separator between database records; default: '$n'
-
sort: name of attributes to sort the output
-
reverse: reverse the result set; possible values: on, off; default: off
-
limit: maximum number of records to return; default: 0 (unlimited)
-
skip: number of records in the hit set to skip before displaying them; default: 0
-
hidenull: wether to hide any output on an empty hit set; possible values: on, off; default: off
-
clear: comma separated list of attributes to be removed from the output if they are not resolved
Cgi Parameters:
-
refresh: refresh the cache of blobs (i.e. jpegPhotos); possible values: on, off; default: off; (right now only the jpegPhoto attribute is recognized as a blob)
The
header,
format and
footer format strings may contain the following variables:
- $percnt: % sign
- $dollar: $ sign
- $n: newline
- $count: the number of hits
- $index: the record number
- $<attr-name>: the value of the record attribute <attr-name>
LDAPUSERS
%LDAPUSERS{ ... }%
List all LDAP userinformation. Information is drawn from cache and not from the LDAP server. Use
?refreshldap=on to update.
Parameters:
-
format: format string used to display a user record
-
header: header to prepend the output
-
footer: footer to appended to the output
-
sep: separator between database records; default: '$n'
-
limit: maximum number of records to return; default: 0 (unlimited)
-
skip: number of records in the hit set to skip before displaying them; default: 0
-
include: regular expression a user's WikiName must match to be included in the output
-
exclude: regular expression a user's WikiName must not match
-
hideunknown: on/off, enable/disable filtering out users that did not log in yet and thus have no hometopic (e.g. created by TWiki:Plugins/NewUsersPlugin), defaults to 'on'
The
format string may contain the following variables:
- $percnt: % sign
- $dollar: $ sign
- $n: newline
- $index: the record number
- $wikiName: the user's WikiName
- $loginName: the user's login name
- $displayName: a link pointing to the users hometopic in the Main web, if it exists, and '<nop>$wikiName' otherwise
- $emails: the list of all known email addresses
Examples
%LDAP{"(objectClass=posixAccount)"
base="(ou=people)"
limit="10"
header="|
Nr |
Name |
Mail |
Photo |$n"
format="| $index | $cn | $mail |

|"
footer="$n
$count users"
sort="cn"
clear="$mail,$jpegPhoto"
}%
%LDAP{"(objectClass=posixGroup)"
base="(ou=group)"
limit="10"
header="|
Nr |
Group |
Members |$n"
format="| $index | $cn | $memberUid |"
clear="$mail,$memberUid"
sort="cn"
}%
%LDAPUSERS{limit="10"}%
Plugin Settings
The
LdapNgPlugin will use the default configuration of the
LdapContrib in your
LocalSite.cfg file, that is
- $TWiki::cfg{Ldap}{Host} (overridable per query)
- $TWiki::cfg{Ldap}{Port} (overridable per query)
- $TWiki::cfg{Ldap}{Base} (overridable per query)
- $TWiki::cfg{Ldap}{Version} (overridable per query)
- $TWiki::cfg{Ldap}{SSL} (overridable per query)
- $TWiki::cfg{Ldap}{BindDN}
- $TWiki::cfg{Ldap}{BindPasswd}
Plugin Installation Instructions
- Run configure for automated install, or do a manual install:
- Download the ZIP file from the Plugin web (see below)
- Unzip
LdapNgPlugin.zip in your twiki installation directory. Content: | File: | Description: |
data/TWiki/LdapNgPlugin.txt | |
lib/TWiki/Plugins/LdapNgPlugin/Core.pm | |
lib/TWiki/Plugins/LdapNgPlugin.pm | |
- Optionally, run
LdapNgPlugin_installer.pl to automatically check and install other TWiki modules that this module depends on. You can also do this step manually.
- Alternatively, manually make sure the dependencies listed in the table below are resolved.
- Visit
configure in your TWiki installation, and enable the plugin in the {Plugins} section.
- Dependencies:
| Name | Version | Description |
|---|
| TWiki::Plugins | >=1.1 | TWiki Dakar release. |
| TWiki::Contrib::LdapContrib | >=2.0 | Required |
| Unicode::MapUTF8 | >=1.11 | Required. Download from CPAN:Unicode::MapUTF8 |
Plugin Info
This work was partly funded by Spanlink Communications.
Related Topics: TWikiPreferences,
TWikiPlugins,
LdapContrib