You are here

README.developers.txt in Lightweight Directory Access Protocol (LDAP) 8.2

Same filename in this branch
  1. 8.2 README.developers.txt
  2. 8.2 ldap_user/README.developers.txt
Same filename and directory in other branches
  1. 7.2 README.developers.txt
  2. 7 README.developers.txt
General LDAP Project Notes

LDAP Servers is base module or api module.  General LDAP functions belong in
LDAP Servers.

--------------------------------------------------------
Case Sensitivity and Character Escaping in LDAP Modules
--------------------------------------------------------

The function ldap_server_massage_text() should be used for dealing with case sensitivity
and character escaping consistently.

The general rule is codified in ldap_server_massage_text() which is:
- escape filter values and attribute values when querying ldap
- use unescaped, lower case attribute names when storing attribute names in arrays (as keys or values), databases, or object properties.
- use unescaped, mixed case attribute values when storing attribute values in arrays (as keys or values), databases, or object properties.

So a filter might be built as follows:

  $username = ldap_server_massage_text($username, 'attr_value', LDAP_SERVER_MASSAGE_QUERY_LDAP)
  $objectclass = ldap_server_massage_text($objectclass, 'attr_value', LDAP_SERVER_MASSAGE_QUERY_LDAP)
  $filter = "(&(cn=$username)(objectClass=$objectclass))";


The following functions are also available:
ldap_pear_escape_dn_value()
ldap_pear_unescape_dn_value()
ldap_pear_unescape_filter_value()
ldap_pear_unescape_filter_value()


--------------------------------------------------------
common variables used in ldap_* and their structures
--------------------------------------------------------

!Structure of $ldap_user and $ldap_entry are different!

-----------
$ldap_user
-----------
@see LdapServer::userUserNameToExistingLdapEntry() return

-----------
$ldap_entry and $ldap_*_entry.
-----------
@see LdapServer::ldap_search() return array


--------------
$user_attr_key
key of form <attr_type>.<attr_name>[:<instance>] such as field.lname, property.mail, field.aliases:2
--------------

File

README.developers.txt
View source
  1. General LDAP Project Notes
  2. LDAP Servers is base module or api module. General LDAP functions belong in
  3. LDAP Servers.
  4. --------------------------------------------------------
  5. Case Sensitivity and Character Escaping in LDAP Modules
  6. --------------------------------------------------------
  7. The function ldap_server_massage_text() should be used for dealing with case sensitivity
  8. and character escaping consistently.
  9. The general rule is codified in ldap_server_massage_text() which is:
  10. - escape filter values and attribute values when querying ldap
  11. - use unescaped, lower case attribute names when storing attribute names in arrays (as keys or values), databases, or object properties.
  12. - use unescaped, mixed case attribute values when storing attribute values in arrays (as keys or values), databases, or object properties.
  13. So a filter might be built as follows:
  14. $username = ldap_server_massage_text($username, 'attr_value', LDAP_SERVER_MASSAGE_QUERY_LDAP)
  15. $objectclass = ldap_server_massage_text($objectclass, 'attr_value', LDAP_SERVER_MASSAGE_QUERY_LDAP)
  16. $filter = "(&(cn=$username)(objectClass=$objectclass))";
  17. The following functions are also available:
  18. ldap_pear_escape_dn_value()
  19. ldap_pear_unescape_dn_value()
  20. ldap_pear_unescape_filter_value()
  21. ldap_pear_unescape_filter_value()
  22. --------------------------------------------------------
  23. common variables used in ldap_* and their structures
  24. --------------------------------------------------------
  25. !Structure of $ldap_user and $ldap_entry are different!
  26. -----------
  27. $ldap_user
  28. -----------
  29. @see LdapServer::userUserNameToExistingLdapEntry() return
  30. -----------
  31. $ldap_entry and $ldap_*_entry.
  32. -----------
  33. @see LdapServer::ldap_search() return array
  34. --------------
  35. $user_attr_key
  36. key of form .[:] such as field.lname, property.mail, field.aliases:2
  37. --------------