[Jifty-commit] r1228 - in jifty/trunk: lib/Jifty
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Thu Jun 8 18:31:35 EDT 2006
Author: jesse
Date: Thu Jun 8 18:31:33 2006
New Revision: 1228
Modified:
jifty/trunk/ (props changed)
jifty/trunk/lib/Jifty/Web.pm
Log:
r12415 at pinglin: jesse | 2006-06-08 18:29:05 -0400
* Cache the current_user in Jifty::Web
Modified: jifty/trunk/lib/Jifty/Web.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Web.pm (original)
+++ jifty/trunk/lib/Jifty/Web.pm Thu Jun 8 18:31:33 2006
@@ -21,7 +21,7 @@
use vars qw/$SERIAL/;
__PACKAGE__->mk_accessors(
- qw(next_page request response session temporary_current_user)
+ qw(next_page request response session temporary_current_user _current_user)
);
__PACKAGE__->mk_classdata($_)
@@ -160,21 +160,36 @@
sub current_user {
my $self = shift;
if (@_) {
- my $user = shift;
- $self->session->set('user_id' => $user ? $user->id : undef);
- $self->session->set('user_ref' => $user ? ref $user->user_object : undef);
+ my $currentuser_obj = shift;
+ $self->session->set(
+ 'user_id' => $currentuser_obj ? $currentuser_obj->id : undef );
+ $self->session->set( 'user_ref' => $currentuser_obj
+ ? ref $currentuser_obj->user_object
+ : undef );
+ $self->_current_user( $currentuser_obj || undef );
}
- if (defined $self->temporary_current_user) {
+
+ if ( defined $self->temporary_current_user ) {
return $self->temporary_current_user;
- } elsif (my $id = $self->session->get('user_id')) {
- my $object = (Jifty->config->framework('ApplicationClass')."::CurrentUser")->new();
- my $user = $self->session->get('user_ref')->new( current_user => $object );
+ } elsif ( defined $self->_current_user ) {
+ return $self->_current_user;
+
+ } elsif ( my $id = $self->session->get('user_id') ) {
+ my $object = (
+ Jifty->config->framework('ApplicationClass') . "::CurrentUser" )
+ ->new();
+ my $user
+ = $self->session->get('user_ref')->new( current_user => $object );
$user->load_by_cols( id => $id );
$object->user_object($user);
+ $self->_current_user($object);
return $object;
} else {
- my $object = (Jifty->config->framework('ApplicationClass')."::CurrentUser")->new();
+ my $object = (
+ Jifty->config->framework('ApplicationClass') . "::CurrentUser" )
+ ->new();
$object->is_superuser(1) if Jifty->config->framework('AdminMode');
+ $self->_current_user($object);
return ($object);
}
}
More information about the Jifty-commit
mailing list