Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Auth
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21827
Modified Files:
User.pm
Log Message:
OIN-182: if cache_user is set to 0 we weren't correctly storing the user_id
Index: User.pm
===================================================================
RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Auth/User.pm,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** User.pm 17 Mar 2005 14:57:59 -0000 1.22
--- User.pm 20 Oct 2005 01:20:46 -0000 1.23
***************
*** 11,14 ****
--- 11,15 ----
my ( $log );
+ my $USER_ID_KEY = 'user_id';
sub get_user {
***************
*** 80,84 ****
my $session = CTX->request->session;
if ( $session ) {
! delete $session->{user_id};
}
$user = $class->_create_nologin_user;
--- 81,85 ----
my $session = CTX->request->session;
if ( $session ) {
! delete $session->{ $USER_ID_KEY };
}
$user = $class->_create_nologin_user;
***************
*** 120,123 ****
--- 121,127 ----
}
}
+ else {
+ $user_id = $session->{ $USER_ID_KEY };
+ }
return ( $user, $user_id );
}
***************
*** 126,140 ****
sub _set_cached_user {
my ( $class, $user ) = @_;
- my $user_refresh = CTX->lookup_session_config->{cache_user};
- return unless ( $user_refresh > 0 );
-
$log ||= get_logger( LOG_AUTH );
-
my $session = CTX->request->session;
! $session->{_oi_cache}{user} = $user;
! $session->{_oi_cache}{user_refresh_on} = time + ( $user_refresh * 60 );
! $log->is_info &&
! $log->info( "Set user to session cache, expires in ",
! "'$user_refresh' minutes" );
}
--- 130,149 ----
sub _set_cached_user {
my ( $class, $user ) = @_;
$log ||= get_logger( LOG_AUTH );
my $session = CTX->request->session;
! my $user_refresh = CTX->lookup_session_config->{cache_user};
! if ( $user_refresh > 0 ) {
! $session->{_oi_cache}{user} = $user;
! $session->{_oi_cache}{user_refresh_on} = time + ( $user_refresh * 60 );
! $log->is_info &&
! $log->info( "Set user to session cache, expires in ",
! "'$user_refresh' minutes" );
! }
! else {
! my $user_id = $user->id;
! $session->{ $USER_ID_KEY } = $user_id;
! $log->is_info &&
! $log->info( "Assigned user ID $user_id to session" );
! }
}
***************
*** 144,148 ****
my ( $class ) = @_;
my $session = CTX->request->session;
! return ( $session ) ? $session->{user_id} : undef;
}
--- 153,157 ----
my ( $class ) = @_;
my $session = CTX->request->session;
! return ( $session ) ? $session->{ $USER_ID_KEY } : undef;
}
***************
*** 164,168 ****
$log ||= get_logger( LOG_AUTH );
$log->error( "Failed to fetch user '$user_id': $error" );
! CTX->request->session->{user_id} = undef;
$log->error( "Since user fetch failed, setting 'user_id' in ",
"session to undef to prevent this from recurring" );
--- 173,177 ----
$log ||= get_logger( LOG_AUTH );
$log->error( "Failed to fetch user '$user_id': $error" );
! CTX->request->session->{ $USER_ID_KEY } = undef;
$log->error( "Since user fetch failed, setting 'user_id' in ",
"session to undef to prevent this from recurring" );
***************
*** 200,204 ****
->fetch_by_login_name( $login_name,
{ skip_security => 1 } )
! };
if ( $@ ) {
$log->error( "Error fetching user by login name: $@" );
--- 209,213 ----
->fetch_by_login_name( $login_name,
{ skip_security => 1 } )
! };
if ( $@ ) {
$log->error( "Error fetching user by login name: $@" );
***************
*** 215,219 ****
my $password = $request->param( $password_field );
-
unless ( $user->check_password( $password ) ) {
$log->warn( "Password check for [$login_name] failed" );
--- 224,227 ----
|