2000-03-31  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* Tag: INCOM_0_09

	* MANIFEST: Added NEWS file.

	* lib/Apache/iNcom.pm: 
	(return_error) s/log_warn/warn.

2000-03-30  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom.pm:
	($VERSION) Upgraded to 0.09.

	* lib/HTML/FormValidator.pm: 
	(filter_quotemeta) Wrapper around quotemeta.
	(filter_uc) Wrapper around uc.
	(filter_lc) Wrapper around lc.
	(filter_ucfirst) Wrapper around ucfirst.
	(filter_sql_wildcard) Transform * into %.

	* lib/Apache/iNcom/Session.pm: 
	(get_lock_manager): Use Apache::iNcom::SessionLocker has lock manager.

	* lib/Apache/iNcom/Request.pm: 
	(cleanup_aliases) Undef the symbol of %Session and %UserSession, 
	since a %hash = undef call CLEAR in tied implementation.

	* lib/Apache/iNcom/SessionLocker.pm: LockManager to serialize
	access to session. It will be used only if 

	* lib/Apache/iNcom.pm: 
	(session_init): Make sure the cookies' value looks like a 
	session id. Added Serialize parameter.
	(new_session_handler) Added Serialize parameter.
	(pod) Documented INCOM_SESSION_SERIALIZE_ACCESS directive.
2000-03-29  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/HTML/FormValidator.pm: 
	(filter_phone) Strip blank space.

	* lib/Apache/iNcom/Request.pm: 
	(cleanup_aliases) New method which undoes
	what setup_aliases does.
	(setup_aliases) New %UserSession hash.
	(BEGIN) Added possibility to import the global variables.

	* lib/Apache/iNcom.pm: 
	(offset_calc) Method grabbed from CGI.pm.
	(request_handler) Call cleanup_aliases.
	(error_handler) Call cleanup_aliases.
	(request_cleanup) Delete expired sessions.	

2000-03-17  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/HTML/FormValidator.pm: 
	(validate) Fixed field_filters processing. 
	(filters) Added integer, pos_integer, neg_integer, 
	decimal, pos_decimal, neg_decimal,
	dollars and phone filters. 
	(filter_trim) Fixed return value.
	(valid_american_phone) True if more than 7 digits.
	(valid_phone) True if more than 6 digits.

2000-02-25  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* TAG: INCOM_0_08

	* Documentation fixes for first public release.
2000-02-23  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* TAG: INCOM_0_07
	* lib/Apache/iNcom.pm:
	(i18n_init) Do not add default language to languages list. That is
	done by Localizer. Sets default to en.
	(error_handler) Honors EMBPERL_OPTIONS and EMBPERL_DEBUG 
	settings. (From the environment or the apache configuration)
	(default_handler) Honors EMBPERL_OPTIONS and EMBPERL_DEBUG
	settings. (From the environment or the apache configuration)

	* lib/Apache/iNcom/Request.pm: (Include) Honors EMBPERL_OPTIONS
	and EMBPERL_DEBUG settings. (From the environment or the apache

	* lib/Apache/iNcom/Localizer.pm: (preffered_lang) returns 
	defaults language if none is set. (new) Set en as default language
	if it's not a valid language tag.

2000-02-16  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* TAG: INCOM_0_06

	* lib/Apache/iNcom/CartManager.pm: Fixed bug with quantity = 0.

2000-02-15  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom/Request.pm: Added TextInclude function.

	* lib/Apache/iNcom/Localizer.pm: Add default language to the list
	  of package to try.

	* lib/Apache/iNcom/CartManager.pm: When using quantity = 0, remove
	  the item.

	* lib/Apache/iNcom.pm: Added default language to LANGUAGE env
	  variable. Changed version to 0.06.

1999-12-03  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* TAG: INCOM_0_05
	* lib/Apache/iNcom/OrderManager.pm (order_report): Use the new
	semantics of Apache::iNcom::Request::Include for report
	generation, which gives us automatic localization of report and 
	template path search.
	* lib/Apache/iNcom/Request.pm (Include): Allows an HTML::Embperl
	hash parameter as argument.

	* lib/DBIx/SearchProfiles.pm
	(record_search,template_search,do_bounded_search): Reimplemented
	limit and max to be more robust. Previous implementation used
	LIMIT / OFFSET and count(*) to retrieive slice and total. It was
	prone to failure on complex query. New implementation run the
	query, count the number of rows returned and returns only the
	requested slice. LIMIT is only to enforce the new max parameter.

	* lib/Apache/iNcom.pm: Small typos fixes. Documented requirements
	for MIME::Base64.
	(bake_session_cookie,new_session_handler,session_init): Resubmit
	cookie to user if there is an explicit expiration date on the cookie.

	* lib/Apache/Session/DBIBase64Store.pm: Use instead a Base64 encoding
	since this will requires less quoting. (uuencoding use ' as a
	valid character).

	* lib/Apache/Session/DBIUUStore.pm: Removed in favor of
	* lib/Apache/iNcom/Session.pm (get_store): Use
	Apache::Session::DBIBase64Store instead of Apache::Session::DBIUUStore.

1999-11-26  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* Tag: INCOMP_SNAP_19991129

	* lib/Apache/iNcom/Request.pm (QueryArgs): Tested the value of %odat
	and %idat instead of the existence of the key.

	* lib/DBIx/SearchProfiles.pm (record_search,template_search):
	Removed dbix_sp_prev and dbix_sp_next.
	(template_search): Use count(*) to determines the total number of
	records that will be returned. (This is broken in regards to distinct).

1999-11-24  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* Tag: INCOM_0_04.
	* lib/Apache/iNcom/Request.pm (logout): Fix erroneous UserDB
	not-set error.

	* lib/Apache/iNcom.pm (default_handler): Only set non-empty values
	in %fdat. 

1999-11-20  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/DBIx/SearchProfiles.pm (record_update): Throw exception if
	there is no fields to update.
	(record_insert): Throw exception if there is no fields to insert.

1999-11-15  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom/UserDBAuthen.pm (pod): Added documentation.
	(handler): Variable can be set to true by using yes or on or true.
	* lib/Apache/iNcom/UserDBAuthz.pm (pod): Added documentation.

	* Tag: INCOM_SNAP_19991115

	* lib/Apache/iNcom/Request.pm (new): Added possibility to disable
	unneeded features by setting the appropriate directives.
	(logged_in,login,user,logout): Throw exception if the UserDB was
	turn off.
	(setup_aliases): Only setup variable for which the feature was

	* lib/Apache/iNcom.pm (pod): Added documentation about how to 
	disable features by setting directives to NONE.

1999-11-14  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom.pm (error_handler,default_handler,pod):
	HTML::Embperl errors are available through the @param in 500 error
	* lib/DBIx/SearchProfiles.pm (pod): Corrected rollback

1999-11-09  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom/Request.pm (new): Implemented
	INCOM_SCRAMBLE_PASSWORD configuration directive.
	* lib/Apache/iNcom.pm (pod): Documented the INCOM_SCRAMBLE_PASSWORD
	configuration directive to change password scrambling option.
	* lib/DBIx/UserDB.pm: Made password's scrambling optional.

1999-11-08  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* demo/incom.sql: Fix errors in group_acl index definitions.

	* lib/Apache/iNcom.pm (new_session_handler): Forgot to pass
	request object in call to return_error.
	(dispatch_handler): Added Pragma and Cache-control headers for
	browser that ignores the Expires header.

1999-11-01  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/DBIx/UserDB.pm (group_get): $gid renamed to $gidorname.

	* lib/Apache/iNcom/OrderManager.pm (checkout): Variable $profile
	is really variable $order. items is an array ref. Remove
	Data::Dumper reference.
	(order_report): %fdat of calling page was overwritten. Order data
	is now passed into the %order global hash.

	* lib/Apache/iNcom/CartManager.pm (apply_charges): Didn't
	deference array.
	(apply_discount): Ditto.

1999-10-29  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* MANIFEST: Rename of UserDBAuthz and UserDBAuthen.

1999-10-28  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom.pm (pod): Added module documentation.

	* lib/Apache/UserDBAuthz.pm: Renamed to Apache::iNcom::UserDBAuthz

	* lib/Apache/UserDBAuthen.pm: Renamed to Apache::iNcom::UserDBAuthen

1999-10-27  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom/Request.pm (pod): Added module documentation.
	* lib/Apache/iNcom/OrderManager.pm (pod): Added module
	(build_order_fields): Fixed typo "shippin".
	(checkout): Report generation is in its own method now. Added
	item_discount_fields parameter to profile. Method now returns 
	the created order's data.
	(order_report): New method.

	* lib/Apache/iNcom/CartManager.pm (pod): Added module documentation.
	* lib/Apache/iNcom/Localizer.pm (pod): Added module documentation.

	* lib/Apache/iNcom/Session.pm (pod): Added module documentation.

	* lib/DBIx/UserDB.pm (license): Changed license to perl terms.
	(user_search): Pass all arguments to underlying record_search.
	(user_get): Accept either a uid or username.
	(user_update): Removed unused $data variable.
	(group_search): Pass all arguments to underlying record_search.
	(group_get): Accept either a gid or groupname.
	(group_update): New method.
	(pod): Added module documentation.
	* lib/DBIx/SearchProfiles.pm (pod): Completed documentation.

1999-10-21  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/DBIx/SearchProfiles.pm (new): Possibility to specify
	DBI parameters to open a connection. Possibility to give the
	search profiles as an hash reference to the constructor.
	(DESTROY): Disconnect from the database if we opened the connection
	in the constructor.
	(sql_do): Query isn't checked for INSERT|UPDATE|DELETE.
	(record_search,template_search): Renamed incom_* parameters to
	(pod): Started module documentation.

	* lib/HTML/FormValidator.pm (new): The input profiles
	specification can be passed directly to the constructor instead of
	a file name.
	(validate): If the constraints string looks like a regexp compile an
	anonymous subroutines which match that regexp.
	(postcode): Allow space or dash inside the postal code.
	(filter_trim,filter_strip): Moved white space stripping code in
	its own filter.
	(pod): Added module documentation.

	* lib/Apache/Session/DBIUUStore.pm (new): Renamed parameters to 
	DataSource, UserName, Password for DBIStore compatibility.
	(DESTROY): If the database handle was opened by the module,
	disconnect the connection on DESTROY to prevent spurious warnings.
	Spotted by Craig Sanders <cas@taz.net.au>.
	(pod): Added module documentation.

1999-10-18  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/iNcom/CartManager.pm (compute): Enable use of
	mutiple discounts for an item.
	(apply_discount): Added function to handle the single/multiple
	cases for discount.
	(apply_charges): Added function to handle the single/multiple
	cases for taxes,shipping charges, etc.
	(item_price): Added functions to query the CartManager about the
	pricing informations of an not yet ordered item.
	(item_pricing): See previous.
	(item_discount): See previous.

	* lib/Apache/iNcom/Localizer.pm (find_localized_file): quote
	filename in regard to regexp.

	* lib/Apache/iNcom/Request.pm	(new): INCOM_ROOT may be relative
	to the server root.

1999-10-15  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/Apache/Session/DBIUUStore.pm: Removed requirements on
				    MIME::Base64, used perl internal 
				    pack and unpack.

				    Added possibility to specify DSN, 
				    username and password rather than 
				    an open DBI connection.
	* Many files:		    Name space reorganization.

	TAG: INCOM_0_03

	* iNcom.spec:		     Set BuildArchitectures to noarch.

	* lib/iNcom/UserDBAuthen.pm: Added.

	* lib/iNcom/UserDBAuthz.pm:  Added.

1999-10-14  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/iNcom/UserDB.pm:	    (allowed)
				    Fixed named of sql_search method. 
				    Fixed group members checking. 
				    Fixed privilege attribute name.

	* MANIFEST:		    Added Localizer.pm, UserDBAuthen.pm
				    and UserDBAuthz.pm

	TAG: INCOM_0_02

	* lib/iNcom/Localizer.pm:   Added get_handle method which finds
				    a Locale::Maketext object appropriate
				    for the preferred languages.

	* lib/iNcom/Request.pm:	    Added $Localizer to namespace of the
				    Set a $Locale object if the variable
				    INCOM_LOCALE is set.
				    Added convenience Currency() and
				    Localize() methods.

1999-10-13  Francis J. Lacoste  <francis.lacoste@iNsu.COM>

	* lib/iNcom.pm:		    INCOM_ROOT is relative to server root.
				    Files are language negotiated.
				    Added error maps.

	* lib/iNcom/Request.pm:	    Added template path search.
				    Search for localized version of the 

	* lib/iNcom/Localizer.pm:   Added.