1.0|
0.16.x|
0.15.x|
0.14.x|
0.13.x|
0.12.x|
0.11.x|
0.10.x|
0.9.x|
0.8.x|
0.7.x|
Ancient|
Overview
Release Date: 2000-08-27
-
Better compability and defaults for running from scratch
under Win32 platform.
-
New form parameter ldap_basedn is used throughout the whole session.
-
List of possible base DNs of LDAP servers are automatically
queried if a connect is done to a
LDAPv3 server with namingContexts attribute set
or UMich-derived LDAPv2 server and entry cn=config.
User can select the search root from select list.
-
New configuration scheme: any configuration parameter in the
dictionary web2ldapcnf.hosts.ldap_def is now retrieved by looking at
string-key 'ldap://ldap_host/ldap_basedn', 'ldap_host', '_' ('_' is
meant as the overall default) in this order.
This allows to hold several database backends on the same host with
the same DNS name. It also shortens the ldap_def dictionary by
avoiding having to repeat same options for every server and
makes browsing of completely unconfigured hosts easy.
This concept should still handle your old config files correctly
(except the specific changes of some variables described below!).
-
Over-featured configuration of required security
level was simplified (You have to adjust your old config!).
-
No more parameter web2ldapcnf.misc.security_level_default
any more. This is set in overall default in
web2ldapcnf.hosts.ldap_def['_']['security_level'] now.
-
Type of dictionary parameter
web2ldapcnf.hosts.ldap_def[]['security_level']
was changed to a simple integer for the required security
level. Security levels which depends on a specific command
might turn out to be less secure because of possible
bugs in implementation/configuration.
-
vCard and printable HTML output is based on template files
similar to the read_template's. This has the advantage to
use different templates per object class.
Path names of template files for vCards and printable HTML are set
with parameter web2ldapcnf.hosts.ldap_def[..]['vcard_template']
and web2ldapcnf.hosts.ldap_def[..]['print_template']
(You have to adjust your old config! See example.).
-
Code cleaning:
-
moved functions for widely used HTML output from module
w2lcore.py to new module w2lgui.py
-
moved/renamed function w2lcore.HTTPHeader() to httphelper.SendHeader()
-
Function w2lgui.CommandButton() expects UTF-8-encoded parameters
now and does the conversion itself. The result is some performance
loss but the code is less buggy.
-
Modules does not catch all exceptions with except: anymore.
-
Empty parameters are not ignored any more.
-
Non-existent parameters are set to None to distinguish
them from empty parameters.
-
w2ldelete.DelTree() is now non-recursive.
-
Smart login is now done in ldapbase.SmartLogin() =>
w2lcore.LDAPSessionParams() looks nicer now.
-
Handle missing parameter ldap_dn with required flag of
cgiforms.formFieldClass()
-
Some case-sensitive bugs fixed when building search result table.
-
All output of read is now wrapped by a <div id=MessageDiv></div>
no matter if the output is a table or generated with a template
(templates changed!).
-
New <div id=StatusDiv></div> for section with status line
containing current DN, host name and bind DN above
main menu.
-
Be as case-respecting as possible when
displaying attribute types without being case-sensitive
in attribute handling. (This fixes compability issues with
upcoming OpenLDAP 2.0.)
-
Tweaked CSS files a bit but this needs more work.
(Any good web designer willing to contribute?)
Release Date: 2000-08-02
-
Fixed missing import of module ldif in w2lhandler.py.
-
Pass only ldif.ldif_pattern to TextAreaClass.__init__()
Release Date: 2000-07-30
-
Wrapper script for running as persistent PythonHandler
under the control of the Apache module
mod_python.
-
Use gzip-encoding for saving network bandwidth if client
has sent
Accept-Encoding: gzip
in the HTTP header.
-
Improved HTTP header data.
Especially date format is now conform to RFC1123.
-
New parameter standalone.run_username for defining the
username for setuid() when started as root.
-
New parameter standalone.debug_log for setting path name
of debugging log file.
Redirect sys.stderr and sys.stdout to debug log
if running detached.
-
Fixed bug with being too case-sensitive with LDIF data
and input fields when modifying entries.
-
Relaxed DN regex checking for compability with
quoted data in RDN-components.
-
separated HTTP server module (independent of web2ldap now)
-
Updated documentation and web pages. Still not really complete...
Release Date: 2000-07-06
- Misc. stuff
-
-
Handle parsing of wrong LDIF data gracefully.
-
Use os.fork() to detach from console if running on Posix platform.
-
If threading is turned off the ForkingMixIn is used to
run a forking server when running under Posix-platform.
-
Fixed bug: Changing objectClass attribute of an entry
works again. New object classes were ignored.
-
Splitted calling the CGI-BIN and calling the stand-alone
server into two different scripts cgi-bin/web2ldap.py and
sbin/web2ldap.py to make a clean separation for users
and package maintainers.
-
Dropped support for form parameter ldap_url.
Was not used and made coding much more complicated.
- Code cleaning:
-
-
All form.add() method calls are done in
module w2lhandler.py now.
-
Cleaned up parameter handling.
-
Handling of search form parameters in single form field objects.
Should be slightly faster.
- Configuration changes:
-
Configuration module web2ldapcnf.py is divided
into the following sub-modules:
-
misc.py: various options
-
standalone.py: options only needed when running as
stand-alone web server
-
hosts.py: specific parameters for different LDAP hosts
-
cgibin.py: options only needed when running
via CGI-BIN interface under the control of a web server
Release Date: 2000-06-18
-
Partial display of search result table with ->> and <<- buttons
for previous and next page. The benefit is a better usability because
there's not so much HTML data sent to the browser.
Due to limitations of LDAP the search results are retrieved completely
from the LDAP server up to the last result index displayed.
E.g. displaying search results 201 to 210 means sending
the results 1 to 200 to /dev/null.
-
Moved configuration files to separate directory (like /etc/web2ldap)
for easy producing of Linux-packages. Splitted former configuration
file module web2ldapcnf.py into directory module
web2ldapcnf/ containing modules all.py and
standalone.py.
-
New parameter web2ldapcnf.input_maxfieldlen for specifying
maximum length of input data for attributes.
-
Base search form for very simple searches (default now).
The search form can be customized with a HTML template file.
-
Select base, advanced or expert search form with select list
of [Search] button.
-
Search results produce handy URL links for LDAP search URLs
and mailto-links for group mailings.
-
Alternate output formats (DSML, LDIF, pretty-printable) are
chosen from a select list with one button now.
-
Content negotiation with HTTP_ACCEPT_LANGUAGES
for serving multi-language variants
of template files (only search form and read templates by now).
-
SSL-enabled when running as a stand-alone gateway
(credits go to Ng Pheng Siong for providing the module
M2Crypto).
This means a lot of more parameters to configure. ;-)
Please do not ask me how to create server certs etc.
The OpenSSL and
mod_ssl docs
might be a good start for learning about this topic. ;-)
-
Improved HTML output (lower-cased, checked with tidy) -
first little steps to XHTML.
-
Send \r\n in HTTP header in platform independent manner.
-
Bunch of small fixes. (still recovering from errors with
the new module structure introduced in 0.7.3...).
-
The semantics of the parameter search_attr has changed.
It represents the LDAP attribute name now (was userfriendly name before).
Incompatible changes in configuration (see parameters
web2ldapcnf.search_attr and web2ldapcnf.ldap_knownattr!!!
-
Parameter search_maxhits in ldap_def dictionary abandoned.
-
If no IP addr is given with option -l the stand-alone mode
binds to INADDR_ANY for listening on all network devices available.
-
Simple address-based access control with client's IP address in
stand-alone mode. See new parameter web2ldapcnf.access_allowed
for defining a list of networks which are allowed access.
Release Date: 2000-04-07
-
Small fixes.
-
Display current RDN as input default when choosing modrdn.
Release Date: 2000-04-06
-
Fixed missing module import when running stand-alone.
Release Date: 2000-04-05
-
J. Stezenbach provided a patched
version of charset.py for faster character set conversion.
-
J. Stezenbach provided a solution
for the hanging socket when running as stand-alone
and catching ErrorExitClass exception in HandleHTTPRequest().
-
All functionality is put into modules
for reducing start-up latency especially when running as
CGI-BIN (thanks again to J. Stezenbach
for giving the right optimization hints).
-
Use string templates for displaying entry data
in search result table (new parameters!).
-
Make asynchronous searches to behave less memory-consuming
especially when downloading large amount of LDIF or DSML data.
-
New per-host parameter search_maxhits introduced to
limit the number of search results displayed in search
result table. This means: Behave nicer on large sites.
Release Date: 2000-02-27
-
Added button downloading DSML-formatted
directory data. (Very preliminary and primitive implementation of
a DSML level 1 producer. This needs testing!).
-
Fixed bug with LDIF data containing non-ASCII characters.
-
Cleaned up password setting and added support for
SMD5 and SSHA hash types. Also hash types can be restricted
in the per-host configuration.
Release Date: 2000-02-26
-
Stand-alone mode delivers documents from web2ldapcnf.document_root now.
-
Added attribute thumbnailphoto to web2ldapcnf.ldap_binaryattr.
-
Changed the behaviour of the [Easy Search] button:
If the base DN is empty the current DN is displayed
as default search base. This is more handy if
browsing in big X.500 trees.
-
Some bug-fixes.
Release Date: 2000-02-20
-
Stand-alone mode by deriving own HTTP handler class from
SimpleHTTPServer.SimpleHTTPRequestHandler. Running stand-alone
speeds up things dramatically (modules are not re-imported
every time).
And yes, it's multi-threaded (needs testing!!!).
And yes, it runs under Windows.
-
Runs under Windows now.
-
Abandoned all global variables.
-
Does not use sys.stdin or sys.stdout directly any more.
-
Function calls for the web2ldap commands through
wrapper-function HandleHTTPRequest().
-
Produces correct HTTP expiring header now.
-
Make use of useful changes in module cgiforms.py.
-
New parameter web2ldapcnf.input_maxattrs.
-
New button [Login As] when displaying an entry.