James Turner

Below is a high-level summary of the main user-visible features/changes in each release. For full details, see commit history under the project's "code" tab.

Release 0.34

  • Minor schema updates for COSINE and OpenLDAP NSS/PAM overlay.
  • Allow read-only attributes in display layouts (Set allow_edit to false).
  • Various bug fixes

This version changes the notation used to configure parts of
a record's display layout to be hidden except whilst the record
is being edited.

Old notation:

                        array("givenName",                      "Given Name",           "contact24.png",true),
                        array("sn",                             "Surname",              "contact24.png",true),
                        array("cn",                             "Full Name",            "contact24.png",true),
                        array("displayName",                    "Preferred Name",       "contact24.png"),
                        array("telephoneNumber",                "Office Phone",         "landline-phone.png"),
                        array("mail",                           "E-mail",               "mail.png")

The "true" at the end of the first three attributes may be thought of
as "hide this item unless editing". In version 0.34 of the address book
this has been replaced by the "allow_view" setting:

                        array("givenName",                      "Given Name",           "contact24.png","allow_view"=>false),
                        array("sn",                             "Surname",              "contact24.png","allow_view"=>false),
                        array("cn",                             "Full Name",            "contact24.png","allow_view"=>false),
                        array("displayName",                    "Preferred Name",       "contact24.png"),
                        array("telephoneNumber",                "Office Phone",         "landline-phone.png"),
                        array("mail",                           "E-mail",               "mail.png")

Existing config files will need to be updated to use the new notation.

The new "allow_edit" attribute setting can be set to false to create
a read-only attribute. The following example will create a simple
display layout where users can edit their phone numbers and e-mail
addresses but not change their names:

                        array("cn",                             "Full Name",            "contact24.png","allow_edit"=>false),
                        array("telephoneNumber",                "Office Phone",         "landline-phone.png"),
                        array("mail",                           "E-mail",               "mail.png")

This layout could be used in combination with the "allow_edit_self"
user permission to create a "self-service" address book where users
are allowed to update their own phone numbers and e-mail addresses.

Release 0.33

  • Updated OpenLDAP access log overlay schema support
  • Display Active Directory aggregate schema and Group Policy WMI filters (subSchema and msWMI-Som objects)
  • Decoding of LDAP syntax OIDs to textual names

Release 0.32

  • Display/editing of OpenLDAP server configuration
  • Support for OpenLDAP name service and DirXML (NetIQ Identity Manager) schemas
  • Increased the number of Active Directory classes recognised
  • Added ldap_schema, openldap_backend and olc_pcachepos data types
  • More flexible handling of object class inheritance

Release 0.31

  • Added support for LDAP password policy schema, RFC2307 NIS schema, and the OpenLDAP Project's directory schema
  • Italian language user interface
  • Minor improvements to "breadcrumb" navigation UI

Release 0.30

  • Display link to monitoring information in OpenLDAP rootDSE
  • Added support for defining DIT structure rules
  • Fixed error when adding a value to a dn/dn_list attribute

Release 0.29

  • Ability to edit group memberhips (as well as the values of other "dn" or "dn_list"-type attributes)
  • Added ldap_server->add_group() configuration command assigning group-based permissions
  • Predefined display layouts for additional eDirectory classes
  • Support for LDAP-managed Oracle NetServices/RDBMS Enterprise Roles

Release 0.28

  • Included predefined display layouts for commonly-used OpenLDAP classes
  • Fix intermittent failed logins due to stale session data

Release 0.27

  • Included predefined display layouts for commonly-used Active Directory classes
  • Various bug fixes

Release 0.26

  • Increased the number of Active Directory and eDirectory classes recognised
  • Added child_objects data type, allow_system_admin permission and ability to view rootDSE record
  • Various bug fixes

Release 0.25

  • Added allow_edit_self permission, introducing basic support for user self-service updating
  • Numerous schema-related enhancements and improvements
  • Improvements and fixes to vCard output
  • Spanish language user interface
  • Added allow_ldap_path permission

Release 0.24

  • User distinguished names (DNs) are looked up automatically on login. They no longer have to be specified in the config file.
  • User permissions can be controlled through LDAP group membership
  • Added allow_login permission setting. Set a user's allow_login permission to false to prevent them from logging in. (This replaces the old mechanism of specifing a special "DENY" DN)
  • OUs and other "folders" can be displayed in a separate area at the top of entry listings, rather than mixed together with other address book entries.
  • Added all remaining attribute definitions to the COSINE schema

This version introduces significant changes to how users and permissions are managed. Future versions will build on these changes, e.g. with per-attribute editing permissions and "self-service" editing. The following notes explain how the configuration syntax differs from previous versions. See the User Guide for a more complete description of the new functionality.

Anonymous access to the address book is now configured as follows:


                // Permissions granted to anonymous users:


The user's DN and password should be specified using the "ldap_dn" and "ldap_password" settings. The old $ldap_default_user and $ldap_default_password settings are no longer used.

In previous versions the default permissions assigned to logged-in users were specified like this:



The new syntax in version 0.24 is:


The template for the user's DN is no longer needed, and users can be located anywhere in the directory (rather than in a single fixed OU). Users' DNs are looked up using a special account, which should have read-only access to search the directory. The account's DN and password are specified as follows:

$ldap_server->dn_search_user = "cn=ldap-search,cn=Users,dc=example,dc=org";
$ldap_server->dn_search_password = "password";

A template for the user's DN can be specified using the ldap_dn setting (if you still wish to use it), for example:


Active Directory users can specify a User Principal Name (UPN) for the ldap_dn setting. The corresponding DN will be looked up when the user logs in:


Release 0.23

  • French language user interface

Release 0.22

  • Small bug fix

Release 0.21

  • User configurable date/time display formats
  • Compatibility with PHP 5.6
  • Searches match anywhere in strings by default
  • Various bug fixes

This version adds a number of new config settings for controlling show dates and times are displayed. Default values will be assumed for older config files that do not include these settings.

Release 0.20

  • User-extensible schema definitions
  • Included support for SCHAC and Mozilla Address Book schemas
  • Added more class definitions to Microsoft schema
  • Ability to configure alternate display layouts per object class
  • Support for boolean, date, date/time and ISO5218 gender data types, read-only support for AD group type/scope, DN list (e.g. group members) and multi-valued text.
  • Display an alternate icon for disabled AD user accounts
  • New permission (allow_folder_info) for accessing information about a container/OU.
  • Now able to run on non-standard web server port number.
  • Fixed missing login link if there is only a single user map entry and anonymous access is disabled.
  • Fixed DN validation checking when using eDirectory.

The configuration syntax for specifying the display layout has changed in this version so that different types of objects can use different layouts.

Old syntax:

$entry_layout = array(

where the array describes the attributes that appear in records. Replacement syntax is:


where the contents of the array are the same as before. The * indicates that this layout should be used for all classes of record. The * can be replaced by a name of a class, for example you could create a layout for "groupOfNames" objects which lists the group members.

Release 0.19

  • New config syntax for LDAP server type/connection and for user/permission mapping
  • Fix web server log messages about missing JQuery UI files and LDAP comparison
  • Fix various user login and permission related bugs
  • Removed $ldap_login_enabled setting (this will be ignored if still present in old configuration files)

This version introduces two changes to the configuration syntax. The syntax for specifying an LDAP connection used to be:

$ldap_server_type = "ad";
$ldap_link = ldap_connect("ldap.example.org",389);

This changes to:

$ldap_server = new ldap_server(
        "ad",                           // LDAP server type
        "ldap.example.org",             // host name/IP address/URL
        389                             // port number

The port number can be missed out if the default LDAP server port (389) is being used.

The second change is to how permissions are configured. The old way was to populate an array of "user mapping" information. In this version each user map entry is specified via a self-contained command, for example:


In contrast to the old syntax:

  • User map entries can appear in the configuration file in any order.

  • Permissions which are not granted don't need to be specified.

  • The mapping entry for __ANONYMOUS__ can be removed completely if anonymous access to your address book isn't allowed.

The new configuration syntax is explained further in the manual.

Release 0.18

  • Fix search suggestions working when address book is installed to a non-root folder path

Release 0.17

  • Search suggestions/autocomplete
  • Attributes containing URLs can be shown as links in search results

Release 0.16

  • UI improvements for mobile devices and when creating/editing records
  • Phone numbers can be displayed as links (click-to-dial, where supported)
  • Support for thumbnailLogo attribute (Active Directory specific)
  • Export records as vCard files
  • Fix error message when replacing an existing photo image

It should be possible to continue using config files from older versions (back to 0.10) with this release. The user/admin guide explains any additional settings to enable new features.

Some CSS/DOM elements have changed in this version. Custom stylesheets (in file styles_local.css, where used) may need minor changes in order to work as before.

Release 0.15

  • Initial support for creating/editing/deleting records

The "Configuring users and permissions" section of the user/admin guide explains how to enable access to the new read/write functionality. The config format is otherwise unchanged since version 0.10.

Release 0.14

  • Minor enhancements to "getting started" section of manual
  • Fix broken icons in "breadcrumb navigation"
  • Fix missing space between elements of compound attributes (separated by "+")

Release 0.13

  • Fix not returning to previously visited URL after logging in/out

Release 0.12

  • Display error/info message if prerequisite PHP extensions are missing
  • Support for jpegPhoto and thumbnailPhoto as columns in search/browse results
  • Bug fix in JPEG photo handling

Release 0.11

  • Parent containers (folders) are now clickable in "breadcrumb navigation"
  • Bug fixes in JPEG photo handling and user login

Release 0.10

  • Don't display record details from outside of the area of the directory (DN) where the address book is stored.
  • Improved escaping of search text (prevent mishandling of "invalid" characters)
  • Appearance of folder/container names (e.g. OUs) in search/browse results can be customised via CSS (same as other LDAP attributes)

Config changes needed when upgrading from 0.09:

Attribute names in $ldap_base_dn need to use the same case as the LDAP directory itself. (e.g. where "dc=Something" was previously accepted, this might need changing to "DC=Something").

Release 0.09

  • Support for displaying user photos in the directory
  • Ability to customise LDAP filters used to retrieve records
  • Fix incorrect collation of accented/non-ASCII characters
  • Fix layout of sections with all-empty data cells in Chrome/Chromium

Release 0.08

  • Ability to customise display fields/layout in detail view
  • Customisable page footer (license/manual/source code links by default)
  • Separate stylesheet for user/local custom CSS styles
  • Fix trailing spaces after attribute values

Release 0.07

  • Initial OpenLDAP support
  • Replaced presentation markup with CSS
  • Fix further text encoding issues (e.g. searches that include Polish characters)

Release 0.06

  • Encoding bug fixes, including search for records with accented characters now working
  • Support install to non-root folder path

Release 0.05

  • Fix missing accented characters on Microsoft AD (explictly set LDAP version 3)
  • Fix broken links in eDirectory search results
  • Fix faulty URL encoding in links
  • Removed deprecated PHP short open tags
  • Title link text now configurable

Release 0.04

  • Added user/password login support
  • Added allow_browse, allow_search and allow_view permissions
  • License change from GPL3 to AGPL3

Release 0.03

  • Configurable columns in browse/search results listings

Release 0.02

  • User/admin/install documentation

Release 0.01

  • Initial public release

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks