Try to fallback to a default login template if the configured one won't work. Fixes bug #11450.

This commit is contained in:
Colin Kuskie 2010-03-02 08:51:13 -08:00
parent beb1337373
commit 119d5137e2
4 changed files with 56 additions and 4 deletions

View file

@ -571,7 +571,8 @@ sub displayLogin {
$vars->{'anonymousRegistration.isAllowed'} = ($self->session->setting->get("anonymousRegistration"));
$vars->{'createAccount.url'} = $self->session->url->page('op=auth;method=createAccount');
$vars->{'createAccount.label'} = $i18n->get(67);
return WebGUI::Asset::Template->new($self->session,$self->getLoginTemplateId)->process($vars);
my $template = $self->getLoginTemplate;
return $template->process($vars);
}
#-------------------------------------------------------------------
@ -661,6 +662,18 @@ sub getCreateAccountTemplateId {
#-------------------------------------------------------------------
=head2 getDefaultLoginTemplateId ( )
This method should be overridden by the subclass and should return the default template ID for the login screen.
=cut
sub getDefaultLoginTemplateId {
return "PBtmpl0000000000000013";
}
#-------------------------------------------------------------------
=head2 getExtrasStyle ( )
This method returns the proper field to display for required fields.
@ -682,6 +695,27 @@ sub getExtrasStyle {
#-------------------------------------------------------------------
=head2 getLoginTemplate ( )
Returns a WebGUI::Asset::Template object for the login template. If the configured
template cannot be used, then it returns a default template object.
=cut
sub getLoginTemplate {
my $self = shift;
my $session = $self->session;
my $templateId = $self->getLoginTemplateId;
my $template = WebGUI::Asset::Template->newByDynamicClass($session, $templateId);
if (!$template) {
$templateId = $self->getDefaultLoginTemplateId;
$template = WebGUI::Asset::Template->newByDynamicClass($session, $templateId);
}
return $template;
}
#-------------------------------------------------------------------
=head2 getLoginTemplateId ( )
This method should be overridden by the subclass and should return the template ID for the login screen.