use strict;
use FS::UID qw( adminsuidsetup preuser_setup );
use FS::CurrentUser;
+use FS::Auth;
-my $module = 'legacy'; #XXX i am set in a conf somehow? or a config file
+#Apache 2.2 and below
+sub useragent_ip {
+ my( $self, $r ) = @_;
+ $r->connection->remote_ip;
+}
sub authen_cred {
my( $self, $r, $username, $password ) = @_;
- unless ( _is_valid_user($username, $password) ) {
- warn "failed auth $username from ". $r->connection->remote_ip. "\n";
- return undef;
- }
-
- warn "authenticated $username from ". $r->connection->remote_ip. "\n";
- adminsuidsetup($username);
-
- FS::CurrentUser->new_session;
+ preuser_setup();
-}
+ my $info = {};
-sub _is_valid_user {
- my( $username, $password ) = @_;
- my $class = 'FS::Auth::'.$module;
+ unless ( FS::Auth->authenticate($username, $password, $info) ) {
+ warn "failed auth $username from ". $self->useragent_ip($r). "\n";
+ return undef;
+ }
- #earlier?
- eval "use $class;";
- die $@ if $@;
+ warn "authenticated $username from ". $self->useragent_ip($r). "\n";
- $class->authenticate($username, $password);
+ FS::CurrentUser->load_user( $username,
+ 'autocreate' => FS::Auth->auth_class->autocreate,
+ %$info,
+ );
+ FS::CurrentUser->new_session;
}
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;
}
$curuser->username;
-
}
1;