[ic] Postgres + Debian error
Kevin Walsh
kevin at cursor.biz
Mon Jan 8 21:47:32 EST 2007
Rene Hertell <interchange at hertell.com> wrote:
> Peter wrote:
>
> >> ALTER TABLE userdb ALTER password SET DEFAULT '';
>
> This worked perfectly! Thanks Peter!
>
> > Also, should mention that it helps to do this as well in userdb.pgsql:
> >
> > Database userdb COLUMN_DEF "password=varchar(64) DEFAULT '' NOT NULL"
> >
> > That way IC will recreate the table correctly in the future.
>
> I guess that this should then be corrected to CVS? What does Mike or Jon
> think about this change?
>
Although it'll work, that fix doesn't "feel right" to me.
Are you using "indirect_login"? If so then the problem might be in
this code in Vend::UserDB (starting from line 1684 in IC 5.5.0):
if($foreign) {
$udb->set_field(
$self->{USERNAME},
$foreign,
$self->{PASSED_USERNAME},
)
or die errmsg("Database access error.");
}
I could be wrong, but it seems to me that the password ($pw) should be
saved as part of that call to set_field(). Perhaps using set_slice()
instead of set_field().
Either that or, better still, the following lines should be moved so that
they are run before the code quoted above, instead of immediately after:
my $pass = $udb->set_field(
$self->{USERNAME},
$self->{LOCATION}{PASSWORD},
$pw,
);
die errmsg("Database access error.") . "\n" unless defined $pass;
That's just a gut feeling, by the way. I haven't tested the theory.
Let me officially be the last person to wish you a happy 2007 and, most
likely, be the the first person to wish you a happy 2008. :-)
--
_/ _/ _/_/_/_/ _/ _/ _/_/_/ _/ _/
_/_/_/ _/_/ _/ _/ _/ _/_/ _/ K e v i n W a l s h
_/ _/ _/ _/ _/ _/ _/ _/_/ kevin at cursor.biz
_/ _/ _/_/_/_/ _/ _/_/_/ _/ _/
More information about the interchange-users
mailing list