X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;h=c6cef443b397ddf128dc25354cd61553dbf599c2;hb=ef6d6cc9adeae9b32f41b1bf388fa1be5013a5c9;hp=6b40b7052b5ee5e039a61c90c283b3a86340ec21;hpb=650450caf089b65793c46ff38aa696337f4005df;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index 6b40b70..c6cef44 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -184,7 +184,8 @@ __PACKAGE__->mk_classdata($_) for qw( config init_done view_object model_classes __PACKAGE__->mk_accessors( qw( params query objects model_class template_args output path args action template error document_encoding content_type table - headers_in headers_out stash status parent build_form_elements) + headers_in headers_out stash status parent build_form_elements + user session) ); __PACKAGE__->config( Maypole::Config->new() ); @@ -435,8 +436,10 @@ sub handler : method { return $self->status unless $self->status == Maypole::Constants::OK(); die "status undefined after start_request_hook()" unless defined $self->status; - $self->get_session; - $self->get_user; + + $self->session($self->get_session); + $self->user($self->get_user); + my $status = $self->handler_guts; return $status unless $status == OK; # TODO: require send_output to return a status code @@ -474,7 +477,9 @@ sub component { $self->args([]); $self->objects([]); - $self->get_user; + $self->session($self->get_session); + $self->user($self->get_user); + my $url = URI->new($path); $self->{path} = $url->path; $self->parse_path; @@ -582,7 +587,11 @@ sub handler_guts { } # less frequent path - perhaps output has been set to an error message - return OK if $self->output; + if ($self->output) { + $self->{content_type} ||= $self->__get_mime_type(); + $self->{document_encoding} ||= "utf-8"; + return OK; + } # normal path - no output has been generated yet my $processed_view_ok = $self->__call_process_view; @@ -636,6 +645,7 @@ sub __setup_plain_template my ($self) = @_; # It's just a plain template + $self->build_form_elements(0); $self->model_class(undef); unless ($self->template) {