From ac877443ed1bd2a93f9c53a9900086ccb7bd68de Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 4 Mar 2005 23:45:13 +0000 Subject: [PATCH] selectable templates for auth --- docs/changelog/6.x.x.txt | 2 + docs/upgrades/upgrade_6.3.0-6.4.0.sql | 9 ++++ lib/WebGUI/Asset/Wobject.pm | 4 ++ lib/WebGUI/Auth/LDAP.pm | 24 +++++++++-- lib/WebGUI/Auth/WebGUI.pm | 60 ++++++++++++++++++++------- lib/WebGUI/URL.pm | 2 +- lib/WebGUI/i18n/English/AuthLDAP.pm | 15 +++++++ lib/WebGUI/i18n/English/AuthWebGUI.pm | 25 +++++++++++ 8 files changed, 122 insertions(+), 19 deletions(-) diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 6d9d4472a..6c3af2a3c 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -11,9 +11,11 @@ - Image Magick is now required to run WebGUI. - Added an image resizer to the image asset. - Added Captcha verification option to WebGUI anonymous registration. + - Authentication templates are now selectable through the settings console. - Added email validation option to WebGUI anonymous registration. Thanks to Matt Wilson for inspiration. - Thumbnails will now be generated a little sharper. Thanks to Nuba. + - SSL is now more strictly enforced. - Fixed resetting votes on Poll would crash it. - Fixed not being able to set display title and other yes no questions to no. - Fixed a bug where URLs would become unreachable when using SSL. diff --git a/docs/upgrades/upgrade_6.3.0-6.4.0.sql b/docs/upgrades/upgrade_6.3.0-6.4.0.sql index 8b2a107b3..34b3e814f 100644 --- a/docs/upgrades/upgrade_6.3.0-6.4.0.sql +++ b/docs/upgrades/upgrade_6.3.0-6.4.0.sql @@ -4,4 +4,13 @@ insert into settings (name, value) values ('webguiValidateEmail', '0'); insert into settings (name, value) values ('webguiUseCaptcha', '1'); delete from template where assetId='PBtmpl0000000000000011'; INSERT INTO template VALUES ('

\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n
    \r\n
  • \">
  • \r\n \r\n
  • \">
  • \r\n
    \r\n
\r\n
','Auth/WebGUI/Create',1,1,'PBtmpl0000000000000011'); +insert into settings (name, value) values ('webguiAccountTemplate', 'PBtmpl0000000000000010'); +insert into settings (name, value) values ('webguiCreateAccountTemplate', 'PBtmpl0000000000000011'); +insert into settings (name, value) values ('webguiExpiredPasswordTemplate', 'PBtmpl0000000000000012'); +insert into settings (name, value) values ('webguiLoginTemplate', 'PBtmpl0000000000000013'); +insert into settings (name, value) values ('webguiPasswordRecoveryTemplate', 'PBtmpl0000000000000014'); +insert into settings (name, value) values ('ldapAccountTemplate', 'PBtmpl0000000000000004'); +insert into settings (name, value) values ('ldapCreateAccountTemplate', 'PBtmpl0000000000000005'); +insert into settings (name, value) values ('ldapLoginTemplate', 'PBtmpl0000000000000006'); + diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index b48c17fba..4b48ce438 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -561,6 +561,10 @@ Renders self->view based upon current style, subject to timeouts. Returns Privil sub www_view { my $self = shift; return WebGUI::Privilege::noAccess() unless $self->canView; + if ($self->get("encryptPage") && $session{env}{HTTPS} ne "on") { + WebGUI::HTTP::setRedirect($self->getUrl); + return ""; + } $self->logView(); my $cache; my $output; diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm index 0205ada42..4e2edafd6 100644 --- a/lib/WebGUI/Auth/LDAP.pm +++ b/lib/WebGUI/Auth/LDAP.pm @@ -325,22 +325,40 @@ sub editUserSettingsForm { -value=>$session{setting}{ldapWelcomeMessage}, -label=>WebGUI::International::get(869) ); + $f->template( + -name=>"ldapAccountTemplate", + -value=>$session{setting}{ldapAccountTemplate}, + -namespace=>"Auth/LDAP/Account", + -label=>WebGUI::International::get("account template","AuthLDAP") + ); + $f->template( + -name=>"ldapCreateAccountTemplate", + -value=>$session{setting}{ldapCreateAccountTemplate}, + -namespace=>"Auth/LDAP/Create", + -label=>WebGUI::International::get("create account template","AuthLDAP") + ); + $f->template( + -name=>"ldapLoginTemplate", + -value=>$session{setting}{ldapLoginTemplate}, + -namespace=>"Auth/LDAP/Login", + -label=>WebGUI::International::get("login template","AuthLDAP") + ); return $f->printRowsOnly; } #------------------------------------------------------------------- sub getAccountTemplateId { - return "PBtmpl0000000000000004"; + return $session{setting}{ldapAccountTemplate} || "PBtmpl0000000000000004"; } #------------------------------------------------------------------- sub getCreateAccountTemplateId { - return "PBtmpl0000000000000005"; + return $session{setting}{ldapCreateAccountTemplate} || "PBtmpl0000000000000005"; } #------------------------------------------------------------------- sub getLoginTemplateId { - return "PBtmpl0000000000000006"; + return $session{setting}{ldapLoginTemplate} || "PBtmpl0000000000000006"; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index d9d24064c..230b491ad 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -383,42 +383,72 @@ sub editUserSettingsForm { -label=>WebGUI::International::get(6,'AuthWebGUI') ); $f->textarea("webguiRecoverPasswordEmail",WebGUI::International::get(134),$session{setting}{webguiRecoverPasswordEmail}); - $f->yesNo( - -name=>"webguiValidateEmail", - -value=>$session{setting}{webguiValidateEmail}, - -label=>WebGUI::International::get('validate email','AuthWebGUI') - ); - $f->yesNo( - -name=>"webguiUseCaptcha", - -value=>$session{setting}{webguiUseCaptcha}, - -label=>WebGUI::International::get('use captcha','AuthWebGUI') - ); + $f->yesNo( + -name=>"webguiValidateEmail", + -value=>$session{setting}{webguiValidateEmail}, + -label=>WebGUI::International::get('validate email','AuthWebGUI') + ); + $f->yesNo( + -name=>"webguiUseCaptcha", + -value=>$session{setting}{webguiUseCaptcha}, + -label=>WebGUI::International::get('use captcha','AuthWebGUI') + ); + $f->template( + -name=>"webguiAccountTemplate", + -value=>$session{setting}{webguiAccountTemplate}, + -namespace=>"Auth/WebGUI/Account", + -label=>WebGUI::International::get("account template","AuthWebGUI") + ); + $f->template( + -name=>"webguiCreateAccountTemplate", + -value=>$session{setting}{webguiCreateAccountTemplate}, + -namespace=>"Auth/WebGUI/Create", + -label=>WebGUI::International::get("create account template","AuthWebGUI") + ); + $f->template( + -name=>"webguiExpiredPasswordTemplate", + -value=>$session{setting}{webguiExpiredPasswordTemplate}, + -namespace=>"Auth/WebGUI/Expired", + -label=>WebGUI::International::get("expired password template","AuthWebGUI") + ); + $f->template( + -name=>"webguiLoginTemplate", + -value=>$session{setting}{webguiLoginTemplate}, + -namespace=>"Auth/WebGUI/Login", + -label=>WebGUI::International::get("login template","AuthWebGUI") + ); + $f->template( + -name=>"webguiPasswordRecoveryTemplate", + -value=>$session{setting}{webguiPasswordRecoveryTemplate}, + -namespace=>"Auth/WebGUI/Recovery", + -label=>WebGUI::International::get("password recovery template","AuthWebGUI") + ); return $f->printRowsOnly; } #------------------------------------------------------------------- sub getAccountTemplateId { - return "PBtmpl0000000000000010"; + return $session{setting}{webguiAccountTemplate} || "PBtmpl0000000000000010"; } #------------------------------------------------------------------- sub getCreateAccountTemplateId { - return "PBtmpl0000000000000011"; + return $session{setting}{webguiCreateAccountTemplate} || "PBtmpl0000000000000011"; } #------------------------------------------------------------------- sub getExpiredPasswordTemplateId { - return "PBtmpl0000000000000012"; + return $session{setting}{webguiExpiredPasswordTemplate} || "PBtmpl0000000000000012"; } #------------------------------------------------------------------- sub getLoginTemplateId { - return "PBtmpl0000000000000013"; + return $session{setting}{webguiLoginTemplate} || "PBtmpl0000000000000013"; } #------------------------------------------------------------------- sub getPasswordRecoveryTemplateId { - return "PBtmpl0000000000000014"; + return $session{setting}{webguiPasswordRecoveryTemplate} || "PBtmpl0000000000000014"; } diff --git a/lib/WebGUI/URL.pm b/lib/WebGUI/URL.pm index 25cd55c49..6fad53b83 100644 --- a/lib/WebGUI/URL.pm +++ b/lib/WebGUI/URL.pm @@ -208,7 +208,7 @@ sub getSiteURL { $site = $session{env}{HTTP_HOST} || $session{config}{defaultSitename}; } my $proto = "http://"; - if ($session{env}{SERVER_PORT} == 443) { + if ($session{env}{HTTPS} eq "on") { $proto = "https://"; } return $proto.$site; diff --git a/lib/WebGUI/i18n/English/AuthLDAP.pm b/lib/WebGUI/i18n/English/AuthLDAP.pm index f6fa3b907..ee4bb4c02 100644 --- a/lib/WebGUI/i18n/English/AuthLDAP.pm +++ b/lib/WebGUI/i18n/English/AuthLDAP.pm @@ -1,6 +1,21 @@ package WebGUI::i18n::English::AuthLDAP; our $I18N = { + 'account template' => { + message => q|Account Template|, + lastUpdated => 1078852969 + }, + + 'create account template' => { + message => q|Create Account Template|, + lastUpdated => 1078852969 + }, + + 'login template' => { + message => q|Login Template|, + lastUpdated => 1078852969 + }, + 'account-1' => { message => q|LDAP Authentication Display Account Template|, lastUpdated => 1078852969 diff --git a/lib/WebGUI/i18n/English/AuthWebGUI.pm b/lib/WebGUI/i18n/English/AuthWebGUI.pm index 88945e22e..2e09922b4 100644 --- a/lib/WebGUI/i18n/English/AuthWebGUI.pm +++ b/lib/WebGUI/i18n/English/AuthWebGUI.pm @@ -1,6 +1,31 @@ package WebGUI::i18n::English::AuthWebGUI; our $I18N = { + 'account template' => { + message => q|Account Template|, + lastUpdated => 1078852836 + }, + + 'create account template' => { + message => q|Create Account Template|, + lastUpdated => 1078852836 + }, + + 'expired password template' => { + message => q|Expired Password Template|, + lastUpdated => 1078852836 + }, + + 'login template' => { + message => q|Login Template|, + lastUpdated => 1078852836 + }, + + 'password recovery template' => { + message => q|Password Recovery Template|, + lastUpdated => 1078852836 + }, + 'use captcha' => { message => q|Use captcha image?|, lastUpdated => 1078852836