X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FAuthCookieHandler.pm;h=93d8ea6a56288f8dd4eff82c6ab7e1a66868258d;hb=7c5f50804027577aac17d0fcefedcd0d0b6ca180;hp=cd89f55afc1239bed58e338c427ccf68315165b2;hpb=92a3df0360d3df6b6ace99fee3d4cc443e6154d0;p=freeside.git diff --git a/FS/FS/AuthCookieHandler.pm b/FS/FS/AuthCookieHandler.pm index cd89f55af..93d8ea6a5 100644 --- a/FS/FS/AuthCookieHandler.pm +++ b/FS/FS/AuthCookieHandler.pm @@ -6,29 +6,34 @@ use FS::UID qw( adminsuidsetup preuser_setup ); use FS::CurrentUser; use FS::Auth; +#Apache 2.2 and below +sub useragent_ip { + my( $self, $r ) = @_; + $r->connection->remote_ip; +} + sub authen_cred { my( $self, $r, $username, $password ) = @_; preuser_setup(); - unless ( _is_valid_user($username, $password) ) { - warn "failed auth $username from ". $r->connection->remote_ip. "\n"; + my $info = {}; + + unless ( FS::Auth->authenticate($username, $password, $info) ) { + warn "failed auth $username from ". $self->useragent_ip($r). "\n"; return undef; } - warn "authenticated $username from ". $r->connection->remote_ip. "\n"; + warn "authenticated $username from ". $self->useragent_ip($r). "\n"; - FS::CurrentUser->load_user($username); + FS::CurrentUser->load_user( $username, + 'autocreate' => FS::Auth->auth_class->autocreate, + %$info, + ); FS::CurrentUser->new_session; } -sub _is_valid_user { - my( $username, $password ) = @_; - - FS::Auth->authenticate($username, $password); -} - sub authen_ses_key { my( $self, $r, $sessionkey ) = @_; @@ -37,7 +42,7 @@ sub authen_ses_key { my $curuser = FS::CurrentUser->load_user_session( $sessionkey ); unless ( $curuser ) { - warn "bad session $sessionkey from ". $r->connection->remote_ip. "\n"; + warn "bad session $sessionkey from ". $self->useragent_ip($r). "\n"; return undef; }