From ca2c06381a500adf49c27c42096c4369472b5a21 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 19 Jul 2012 09:39:12 -0700 Subject: [PATCH] Fix gateway issues in several modules, including auth for password recovery. Fixes bug #12375 --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Account/Inbox.pm | 6 +++--- lib/WebGUI/Auth/WebGUI.pm | 2 +- lib/WebGUI/Friends.pm | 4 ++-- lib/WebGUI/Mail/Send.pm | 2 +- lib/WebGUI/Operation/VersionTag.pm | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 921b2ffe4..5b9387b04 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -26,6 +26,7 @@ - fixed: Http Proxy assets with no URL to proxy cannot be deleted. - fixed: Friends request messages that no longer exist throw a warning. - fixed: Asset Report asset can search for all wobjects in addition to all assets. + - fixed #12375: Gateway URL ignored for password recovery 7.10.24 - fixed #12318: asset error causes asset manager to fail diff --git a/lib/WebGUI/Account/Inbox.pm b/lib/WebGUI/Account/Inbox.pm index 7c02f1df7..29bed16e0 100644 --- a/lib/WebGUI/Account/Inbox.pm +++ b/lib/WebGUI/Account/Inbox.pm @@ -938,7 +938,7 @@ sub www_inviteUserSave { ##Create the invitation url for each individual invitation my $inviteId = $session->id->generate(); $var->{'url'} - = $session->url->append( $session->url->getSiteURL, 'op=auth;method=createAccount;code=' . $inviteId ); + = $session->url->append( $session->url->getSiteURL . $session->url->gateway, 'op=auth;method=createAccount;code=' . $inviteId ); ##Create the invitation record. my $now = WebGUI::DateTime->new( $session, DateTime->now->set_time_zone('UTC')->epoch )->toMysqlDate; @@ -1365,7 +1365,7 @@ sub www_sendMessageSave { fromUsername => $fromUser->username, subject => $messageProperties->{subject}, message => $messageProperties->{message}, - inboxLink => $session->url->append($session->url->getSiteURL, 'op=account;module=inbox'), + inboxLink => $session->url->append($session->url->getSiteURL . $session->url->gateway, 'op=account;module=inbox'), }; ##Fill in template my $output = $smsNotificationTemplate->process($var); @@ -1398,7 +1398,7 @@ sub www_sendMessageSave { fromUsername => $fromUser->username, subject => $messageProperties->{subject}, message => $messageProperties->{message}, - inboxLink => $session->url->append($session->url->getSiteURL, 'op=account;module=inbox'), + inboxLink => $session->url->append($session->url->getSiteURL . $session->url->gateway, 'op=account;module=inbox'), }; ##Fill in template my $output = $template->process($var); diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index 2226bf199..0cc96c6f4 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -1136,7 +1136,7 @@ sub emailRecoverPasswordFinish { my $mail = WebGUI::Mail::Send->create($session, { to=>$email, subject=>$i18n->get('WebGUI password recovery')}); my $vars = { }; - $vars->{recoverPasswordUrl} = $session->url->append($session->url->getSiteURL,'op=auth;method=emailResetPassword;token='.$recoveryGuid); + $vars->{recoverPasswordUrl} = $session->url->append($session->url->getSiteURL.$session->url->gateway,'op=auth;method=emailResetPassword;token='.$recoveryGuid); my $templateId = $session->setting->get('webguiPasswordRecoveryEmailTemplate'); my $template = WebGUI::Asset->newByDynamicClass($session, $templateId); if (!$template) { diff --git a/lib/WebGUI/Friends.pm b/lib/WebGUI/Friends.pm index 861334730..ba0c8aa80 100644 --- a/lib/WebGUI/Friends.pm +++ b/lib/WebGUI/Friends.pm @@ -355,7 +355,7 @@ sub sendAddRequest { my $userId = shift; my $comments = shift; my $url = $self->session->url; - my $inviteUrl = shift || $url->append($url->getSiteURL,'op=account'); + my $inviteUrl = shift || $url->append($url->getSiteURL,$url->gateway('/','op=account')); my $i18n = WebGUI::International->new($self->session, "Friends"); @@ -368,7 +368,7 @@ sub sendAddRequest { $inviteUrl = $url->append($inviteUrl,'inviteId='.$inviteId); # Build the message - my $messageText = sprintf $i18n->get("invitation approval email"), $self->user->getWholeName, $self->session->url->getSiteURL, $comments, $inviteUrl; + my $messageText = sprintf $i18n->get("invitation approval email"), $self->user->getWholeName, $self->session->url->getSiteURL.$url->gateway('/'), $comments, $inviteUrl; # send message my $message = WebGUI::Inbox->new($self->session)->addMessage({ diff --git a/lib/WebGUI/Mail/Send.pm b/lib/WebGUI/Mail/Send.pm index 4418aaeb3..36fe71d9d 100644 --- a/lib/WebGUI/Mail/Send.pm +++ b/lib/WebGUI/Mail/Send.pm @@ -180,7 +180,7 @@ sub addHtml { my $self = shift; my $text = shift; if ($text !~ /<(?:html|body)/) { - my $site = $self->session->url->getSiteURL; + my $site = $self->session->url->getSiteURL.$self->session->url->gateway; $text = < diff --git a/lib/WebGUI/Operation/VersionTag.pm b/lib/WebGUI/Operation/VersionTag.pm index 254f6dcb0..24aa070d8 100644 --- a/lib/WebGUI/Operation/VersionTag.pm +++ b/lib/WebGUI/Operation/VersionTag.pm @@ -689,7 +689,7 @@ sub www_manageRevisionsInTag { sprintf $html, $i18n->get( "error permission www_manageRevisionsInTag title" ), $i18n->get( "error permission www_manageRevisionsInTag body" ), - $session->url->getSiteURL, + $session->url->getSiteURL . $session->url->gateway, $i18n->get( "back to site" ), ); }