[interchange-cvs] interchange - heins modified 6 files

interchange-cvs at icdevgroup.org interchange-cvs at icdevgroup.org
Mon Mar 24 10:30:10 EST 2008


User:      heins
Date:      2008-03-24 15:30:10 GMT
Modified:  .        WHATSNEW-5.5
Modified:  dist/standard catalog.cfg
Modified:  dist/standard/dbconf/mysql userdb.mysql
Modified:  dist/standard/dbconf/pgsql userdb.pgsql
Modified:  dist/standard/products userdb.txt
Modified:  lib/Vend UserDB.pm
Log:
* Add new options for determining date of events in the userdb:

    UserDB <profile> created_date_iso   <field_name>
    UserDB <profile> created_date_epoch <field_name>
    UserDB <profile> updated_date_iso   <field_name>
    UserDB <profile> updated_date_epoch <field_name>

    created_date_iso
        Place a string ISO date in this field when user created.
    created_date_epoch
        Place a string epoch date in this field when user created.
        Only works if no iso date defined.
    updated_date_iso
        Place a string ISO date in this field when user updated via
        [userdb save] (i.e. set_values()).
    updated_date_epoch
        Place a string epoch date in this field when user updated via
        [userdb save] (i.e. set_values()).
        Only works if no iso date defined.

   Default is not to use this feature, though this is now in
   the standard template:

        UserDB    default    created_date_epoch created
        UserDB    default    updated_date_epoch updated

   along with the appropriate fields.

Revision  Changes    Path
1.98                 interchange/WHATSNEW-5.5


rev 1.98, prev_rev 1.97
Index: WHATSNEW-5.5
===================================================================
RCS file: /var/cvs/interchange/WHATSNEW-5.5,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- WHATSNEW-5.5	21 Mar 2008 19:23:24 -0000	1.97
+++ WHATSNEW-5.5	24 Mar 2008 15:30:10 -0000	1.98
@@ -309,6 +309,34 @@
 
   UserDB    default    validchars "-A-Za-z0-9_ at .+"
 
+* Add new options for determining date of events in the userdb:
+
+	UserDB <profile> created_date_iso   <field_name>
+	UserDB <profile> created_date_epoch <field_name>
+	UserDB <profile> updated_date_iso   <field_name>
+	UserDB <profile> updated_date_epoch <field_name>
+
+	created_date_iso
+		Place a string ISO date in this field when user created.
+	created_date_epoch
+		Place a string epoch date in this field when user created.
+		Only works if no iso date defined.
+	updated_date_iso
+		Place a string ISO date in this field when user updated via
+		[userdb save] (i.e. set_values()).
+	updated_date_epoch
+		Place a string epoch date in this field when user updated via
+		[userdb save] (i.e. set_values()).
+		Only works if no iso date defined.
+
+   Default is not to use this feature, though this is now in
+   the standard template:
+
+		UserDB    default    created_date_epoch created
+		UserDB    default    updated_date_epoch updated
+	
+   along with the appropriate fields.
+   
 UserTag
 -------
 



1.22                 interchange/dist/standard/catalog.cfg


rev 1.22, prev_rev 1.21
Index: catalog.cfg
===================================================================
RCS file: /var/cvs/interchange/dist/standard/catalog.cfg,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- catalog.cfg	24 Nov 2007 00:51:24 -0000	1.21
+++ catalog.cfg	24 Mar 2008 15:30:10 -0000	1.22
@@ -213,6 +213,12 @@
 # Don't want people setting their credit limit or dealer status directly
 UserDB    default    scratch       "dealer price_level credit_limit"
 
+# Update the database with the date when creating a user
+UserDB    default    created_date_iso   created
+
+# Update the database with the date when updating a user via set_values
+UserDB    default    updated_date_iso   updated
+
 # Set some other things you want to retain but which don't deserve their
 # own field -- stored in serial field preferences
 UserDB    default    extra_fields  <<EOU



1.3                  interchange/dist/standard/dbconf/mysql/userdb.mysql


rev 1.3, prev_rev 1.2
Index: userdb.mysql
===================================================================
RCS file: /var/cvs/interchange/dist/standard/dbconf/mysql/userdb.mysql,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- userdb.mysql	19 Oct 2005 14:26:32 -0000	1.2
+++ userdb.mysql	24 Mar 2008 15:30:10 -0000	1.3
@@ -24,6 +24,7 @@
 Database  userdb  COLUMN_DEF   "city=varchar(30)"
 Database  userdb  COLUMN_DEF   "company=varchar(64)"
 Database  userdb  COLUMN_DEF   "country=varchar(10)"
+Database  userdb  COLUMN_DEF   "created=varchar(32)"
 Database  userdb  COLUMN_DEF   "credit_limit=varchar(16)"
 Database  userdb  COLUMN_DEF   "db_acl=BLOB"
 Database  userdb  COLUMN_DEF   "dealer=varchar(32)"
@@ -44,4 +45,5 @@
 Database  userdb  COLUMN_DEF   "preferences=BLOB"
 Database  userdb  COLUMN_DEF   "s_nickname=text"
 Database  userdb  COLUMN_DEF   "state=varchar(20)"
+Database  userdb  COLUMN_DEF   "updated=varchar(32)"
 Database  userdb  COLUMN_DEF   "zip=varchar(10)"



1.3                  interchange/dist/standard/dbconf/pgsql/userdb.pgsql


rev 1.3, prev_rev 1.2
Index: userdb.pgsql
===================================================================
RCS file: /var/cvs/interchange/dist/standard/dbconf/pgsql/userdb.pgsql,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- userdb.pgsql	19 Oct 2005 14:26:32 -0000	1.2
+++ userdb.pgsql	24 Mar 2008 15:30:10 -0000	1.3
@@ -24,6 +24,7 @@
 Database  userdb  COLUMN_DEF   "b_zip=varchar(10)"
 Database  userdb  COLUMN_DEF   "carts=text"
 Database  userdb  COLUMN_DEF   "city=varchar(30)"
+Database  userdb  COLUMN_DEF   "created=varchar(32)"
 Database  userdb  COLUMN_DEF   "company=varchar(64)"
 Database  userdb  COLUMN_DEF   "country=varchar(10)"
 Database  userdb  COLUMN_DEF   "credit_limit=varchar(16)"
@@ -46,6 +47,7 @@
 Database  userdb  COLUMN_DEF   "preferences=text"
 Database  userdb  COLUMN_DEF   "s_nickname=text"
 Database  userdb  COLUMN_DEF   "state=varchar(20)"
+Database  userdb  COLUMN_DEF   "updated=varchar(32)"
 Database  userdb  COLUMN_DEF   "zip=varchar(10)"
 Database  userdb  DEFAULT      "inactive=''"
 



1.3                  interchange/dist/standard/products/userdb.txt


rev 1.3, prev_rev 1.2
Index: userdb.txt
===================================================================
RCS file: /var/cvs/interchange/dist/standard/products/userdb.txt,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- userdb.txt	19 Oct 2005 14:48:00 -0000	1.2
+++ userdb.txt	24 Mar 2008 15:30:10 -0000	1.3
@@ -1,4 +1,4 @@
-username	password	acl	mod_time	s_nickname	company	fname	lname	address1	address2	address3	city	state	zip	country	phone_day	mv_shipmode	b_nickname	b_fname	b_lname	b_company	b_address1	b_address2	b_address3	b_city	b_state	b_zip	b_country	b_phone	p_nickname	email	fax	phone_night	address_book	accounts	preferences	carts	owner	file_acl	db_acl	mail_list	credit_limit	inactive	dealer	price_level
+username	password	acl	mod_time	s_nickname	company	fname	lname	address1	address2	address3	city	state	zip	country	phone_day	mv_shipmode	b_nickname	b_fname	b_lname	b_company	b_address1	b_address2	b_address3	b_city	b_state	b_zip	b_country	b_phone	p_nickname	email	fax	phone_night	address_book	accounts	preferences	carts	owner	file_acl	db_acl	mail_list	credit_limit	inactive	dealer	price_level	updated	created
 ckirk	kirk		0		Auto Exchange Express	Charles	Kirk	123 Exchange Dr.			Seattle	WA	34987	US	360-111-1234	upsg														kirk at icdevgroup.net	360-111-1239	360-111-1244								alert				
 jdoe	test		0			John	Doe	614 Hamlet Lane			Herndon	VA	20171	US	703-456-2965	upsg		Jerry	Balfour	Akopia, Inc.	11480 Sunset Hills Rd.	Suite 200 East		Reston	VA	20190	USA			devnull at icdevgroup.net		703-555-1212								newsletter alert upgrade	99448.07		1	dealer
 jking	king		0		Car Parts, Inc.	John	King	123 Auto Blvd.			Miami	FL	39807	US	305-111-1234	upsg														king at icdevgroup.net	305-111-1234	305-111-1239								alert upgrade				



2.60                 interchange/lib/Vend/UserDB.pm


rev 2.60, prev_rev 2.59
Index: UserDB.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/UserDB.pm,v
retrieving revision 2.59
retrieving revision 2.60
diff -u -r2.59 -r2.60
--- UserDB.pm	14 Feb 2008 14:46:11 -0000	2.59
+++ UserDB.pm	24 Mar 2008 15:30:10 -0000	2.60
@@ -1,6 +1,6 @@
 # Vend::UserDB - Interchange user database functions
 #
-# $Id: UserDB.pm,v 2.59 2008-02-14 14:46:11 kwalsh Exp $
+# $Id: UserDB.pm,v 2.60 2008-03-24 15:30:10 mheins Exp $
 #
 # Copyright (C) 2002-2007 Interchange Development Group
 # Copyright (C) 1996-2002 Red Hat, Inc.
@@ -17,7 +17,7 @@
 
 package Vend::UserDB;
 
-$VERSION = substr(q$Revision: 2.59 $, 10);
+$VERSION = substr(q$Revision: 2.60 $, 10);
 
 use vars qw!
 	$VERSION
@@ -299,6 +299,10 @@
 						ACL			=> $options{acl}		|| 'acl',
 						FILE_ACL	=> $options{file_acl}	|| 'file_acl',
 						DB_ACL		=> $options{db_acl}		|| 'db_acl',
+						CREATED_DATE_ISO		=> $options{created_date_iso},
+						CREATED_DATE_UNIX		=> $options{created_date_epoch},
+						UPDATED_DATE_ISO		=> $options{updated_date_iso},
+						UPDATED_DATE_UNIX		=> $options{updated_date_epoch},
 							},
 			STATUS		=>		0,
 			ERROR		=>		'',
@@ -877,6 +881,34 @@
 					);
 		}
 	}
+
+	my $dfield;
+	my $dstring;
+	if($dfield = $self->{OPTIONS}{updated_date_iso}) {
+		if($self->{OPTIONS}{updated_date_gmtime}) {
+			$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%SZ', gmtime());
+		}
+		elsif($self->{OPTIONS}{updated_date_showzone}) {
+			$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%S %z', localtime());
+		}
+		else {
+			$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%S', localtime());
+		}
+	}
+	elsif($dfield = $self->{OPTIONS}{updated_date_epoch}) {
+		$dstring = time;
+	}
+
+	if($dfield and $dstring) {
+		if($db->test_column($dfield)) {
+			push @bfields, $dfield;
+			push @bvals, $dstring;
+		}
+		else {
+			my $msg = errmsg("updated field %s doesn't exist", $dfield);
+			Vend::Tags->warnings($msg);
+		}
+	}
 	
 	while(@extra) {
 		push @bfields, shift @extra;
@@ -1349,7 +1381,7 @@
 			my $login_time;
 			unless($self->{OPTIONS}{null_time}) {
 				$login_time = $self->{OPTIONS}{iso_time}
-						? POSIX::strftime("%Y-%m-%dT%H:%M:%S", localtime($now))
+						? POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime($now))
 						: $now;
 			}
 			eval {
@@ -1727,6 +1759,35 @@
 				 or die errmsg("Database access error: %s", $udb->errstr) . "\n";
 		}
 
+		my $dfield;
+		my $dstring;
+		if($dfield = $self->{OPTIONS}{created_date_iso}) {
+			if($self->{OPTIONS}{created_date_gmtime}) {
+				$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%SZ', gmtime());
+			}
+			elsif($self->{OPTIONS}{created_date_showzone}) {
+				$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%S %z', localtime());
+			}
+			else {
+				$dstring = POSIX::strftime('%Y-%m-%d %H:%M:%S', localtime());
+			}
+		}
+		elsif($dfield = $self->{OPTIONS}{created_date_epoch}) {
+			$dstring = time;
+		}
+
+		if($dfield and $dstring) {
+			$udb->set_field(
+						$self->{USERNAME},
+						$dfield,
+						$dstring,
+						)
+				or do { 
+					my $msg = errmsg('Failed to set new account creation date: %s', $udb->errstr);
+					Vend::Tags->warnings($msg);
+				};
+		}
+
 		if($options{no_login}) {
 			$Vend::Session->{auto_created_user} = $self->{USERNAME};
 		}






More information about the interchange-cvs mailing list