From 9f3ff77dbd6ca7b845817af10e6226c259e6b860 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 21 Jul 2006 20:42:50 +0000 Subject: [PATCH] webgui for windows changes --- docs/changelog/7.x.x.txt | 225 +++++++++++++++++++------------------ lib/WebGUI.pm | 6 +- lib/WebGUI/Session.pm | 3 +- lib/WebGUI/Session/Http.pm | 5 +- lib/WebGUI/Storage.pm | 4 +- 5 files changed, 123 insertions(+), 120 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 63f026600..02c12e6bf 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,112 +1,113 @@ -7.0.3 - - Fixed a problem with the 7.0.0-7.0.1 upgrade relating to internationalized - department names. - - fix: Missing documentation breaks the List of Available Macros (Wouter - van Oijen / ProcoliX) - - fix: Article thumbnail not working (Len Kranendonk) - - Fixed a bug in WebGUI::Asset::Post where userDefined and synopsis form - elements were not populated when previewed. (Martin Kamerbeek / Procolix) - - fix: Indent Navigation broken (Wouter van Oijen / ProcoliX) - - fix: HttpProxy not working (with fix) (Eric Kennedy) - - fix: Copyright on Default Template (Wouter van Oijen / ProcoliX) - - fix: FileUrl macro doesn't handle snippets (Wouter van Oijen / ProcoliX) - - fix: Dataform adding fields without fieldname (Wouter van Oijen / ProcoliX) - - fix: Fatal in Affiliate.pm - - -7.0.2 - - fix: upgrade from 6.99.4-6.99-5 can fail if site contains groups tied to ldap with no users in it. - - GroupText macro returns an error message if it can't find the group by the name the user supplies. - - fix: Unable to remove databaselinks (Thanks to misja) - - fix: Collaboration System hangs under certain conditions (Martin Kamerbeek - / Procolix) - - fix: Insert WebGUI Image inserts image, but does not retain border, spacing - or alignment.(Martin Kamerbeek / Procolix) - - Added Chinese character support to search engine and indexer thanks to Zhou - Xiaopeng. - - fix: issue with recursive ldap filter causing it not to work properly - - fix: upgrade 7.0.0 to 7.0.1 ldap problem - - fix: Typo when trying to display pvt profile - - Added an unsubscribe link to the messages generated by collaboration - subscriptions per the laws in various countries. - - fix: MultiSearch - - fix: Unable to duplicate existing Session Id - - fix: Admins not in visitors group - - fix: Data Form Text Area ignores size settings - - Fixed a bug that didn't allow you to search a matrix. - - Fixed a bug in the upgrade that caused template problems with the WebGUI 6 - template if anyone was still using that. - - Fixed a bug where the template variables currentPage.hasViewableSiblings - and currentPage.hasViewableChildren were always false. Added the - page.parent.rank template variable to the Navigation template. (Martin - Kamerbeek / Procolix) - - Fixed a bug where WebGUI::Asset::File->addRevision did not set correct - privs to the storage associated with it. (Martin Kamerbeek / Procolix) - - Added a reverse page loop option to the navigation asset (Martin - Kamerbeek / Procolix) - - fix: cs mail needs archive url - - fix: cs mail not sending in-reply-to and references headers - - fix: cs mail doesn't like code via email - - CS mail now sends out the email address of the poster as from, when it - exists. - - fix: WebGUI::Image missing methods - - Added runOnLogin and runOnLogout config file properties to Authentication to allow - for running an external script on successful login or logout. - - fix: spectre - - fix: Spectre tries to delete the same workflow instance twice - - Fixed part of the Spectre memory leak. See gotcha.txt for details. - - -7.0.1 - - fix: User profile field "Department" needs i18n - - fix: AssetProxied Navigation context menu - items invisible in Style 02 - - fix: Request Tracker Asset - Reply to a post displays Severity drop down - list - - fix: Syndicated wobject erro 6.8+ - - fix: new spectre.pl error (Martin Kamerbeek / Procolix) - - fix: Can't create new account - - fix: Several new assets aren't added to config during upgrade process - - fix: Post Subject HTML - - fix: Matrix: can't instantiate template - - fix: Session id (Martin Kamerbeek / Procolix) - - fix: Style Wizard - - fix: content-type - - fix: Two cookies and incorrect Last-Modified date in HTTP header - - fix: HTTP status code 404 broken - - fix: Add missing page on Problem With Request - - fix: Avatar/photo upload not working - - fix: Shortcut with content lock fails (Thanks to Michelle Lamar) - - fix: Security bug in session env - - fix: Ldap Registration of new users (Thanks to guiuser) - - fix: Missing/Incorrect POD - - Made changes to spectre to handle finished workflows better. - - Added filter to groups and ldap connections to filter out group members in cases where the ldap group propery and the recursive group poperty are the same - - -7.0.0 - - Welcome to a whole new world of WebGUI. After 2.5 years and 20,000 hours of - development, WebGUI 7 is finally here. - - Fixed a bug in the asset manager where you could be redirected to a wrong - page after using the delete, copy, cut, duplicate buttons. - - fix: Can't set View Purchase History Template in commerce settings - - fix: Template toolbar missing for Transaction Error Template - - fix: Page fails and cannot be edited except through the db if custom rich editor deleted. - - fix: Search returns not restricted to chosen path or asset type - - fix: Product Asset - specification labels not showing - - fix: Folders displayed for underprivileged users (wouter / Procolix) - - fix: Secure the search function - - fix: Export Functionality - - fix: Search displays already deleted files - - fix: Pagination not working in User Management System - - fix: Upgrade 6.8.10 to 6.99.5 (Thanks to Erik Svanberg for the patch) - - fix: Adding Survey Choices - - fix: User/Group problem - - fix: Edit LDAP Connection - - fix: SQL Report w/ pagination and nested queries - - fix: Unable to add Web Services Client - - Fixed a bug in spectre where it wasn't using session cookies. - - Fixed a bug in spectre where you couldn't shut it down if you started it on - an IP other than 127.0.0.1. - - Made the Include macro more secure. - - Added Len's patch to fix some caching problems. - +7.0.3 + - Fixed a problem with the 7.0.0-7.0.1 upgrade relating to internationalized + department names. + - fix: Missing documentation breaks the List of Available Macros (Wouter + van Oijen / ProcoliX) + - fix: Article thumbnail not working (Len Kranendonk) + - Fixed a bug in WebGUI::Asset::Post where userDefined and synopsis form + elements were not populated when previewed. (Martin Kamerbeek / Procolix) + - fix: Indent Navigation broken (Wouter van Oijen / ProcoliX) + - fix: HttpProxy not working (with fix) (Eric Kennedy) + - fix: Copyright on Default Template (Wouter van Oijen / ProcoliX) + - fix: FileUrl macro doesn't handle snippets (Wouter van Oijen / ProcoliX) + - fix: Dataform adding fields without fieldname (Wouter van Oijen / ProcoliX) + - fix: Fatal in Affiliate.pm + - Fixed several problems to make WebGUI 7 Windows compatible again. + + +7.0.2 + - fix: upgrade from 6.99.4-6.99-5 can fail if site contains groups tied to ldap with no users in it. + - GroupText macro returns an error message if it can't find the group by the name the user supplies. + - fix: Unable to remove databaselinks (Thanks to misja) + - fix: Collaboration System hangs under certain conditions (Martin Kamerbeek + / Procolix) + - fix: Insert WebGUI Image inserts image, but does not retain border, spacing + or alignment.(Martin Kamerbeek / Procolix) + - Added Chinese character support to search engine and indexer thanks to Zhou + Xiaopeng. + - fix: issue with recursive ldap filter causing it not to work properly + - fix: upgrade 7.0.0 to 7.0.1 ldap problem + - fix: Typo when trying to display pvt profile + - Added an unsubscribe link to the messages generated by collaboration + subscriptions per the laws in various countries. + - fix: MultiSearch + - fix: Unable to duplicate existing Session Id + - fix: Admins not in visitors group + - fix: Data Form Text Area ignores size settings + - Fixed a bug that didn't allow you to search a matrix. + - Fixed a bug in the upgrade that caused template problems with the WebGUI 6 + template if anyone was still using that. + - Fixed a bug where the template variables currentPage.hasViewableSiblings + and currentPage.hasViewableChildren were always false. Added the + page.parent.rank template variable to the Navigation template. (Martin + Kamerbeek / Procolix) + - Fixed a bug where WebGUI::Asset::File->addRevision did not set correct + privs to the storage associated with it. (Martin Kamerbeek / Procolix) + - Added a reverse page loop option to the navigation asset (Martin + Kamerbeek / Procolix) + - fix: cs mail needs archive url + - fix: cs mail not sending in-reply-to and references headers + - fix: cs mail doesn't like code via email + - CS mail now sends out the email address of the poster as from, when it + exists. + - fix: WebGUI::Image missing methods + - Added runOnLogin and runOnLogout config file properties to Authentication to allow + for running an external script on successful login or logout. + - fix: spectre + - fix: Spectre tries to delete the same workflow instance twice + - Fixed part of the Spectre memory leak. See gotcha.txt for details. + + +7.0.1 + - fix: User profile field "Department" needs i18n + - fix: AssetProxied Navigation context menu - items invisible in Style 02 + - fix: Request Tracker Asset - Reply to a post displays Severity drop down + list + - fix: Syndicated wobject erro 6.8+ + - fix: new spectre.pl error (Martin Kamerbeek / Procolix) + - fix: Can't create new account + - fix: Several new assets aren't added to config during upgrade process + - fix: Post Subject HTML + - fix: Matrix: can't instantiate template + - fix: Session id (Martin Kamerbeek / Procolix) + - fix: Style Wizard + - fix: content-type + - fix: Two cookies and incorrect Last-Modified date in HTTP header + - fix: HTTP status code 404 broken + - fix: Add missing page on Problem With Request + - fix: Avatar/photo upload not working + - fix: Shortcut with content lock fails (Thanks to Michelle Lamar) + - fix: Security bug in session env + - fix: Ldap Registration of new users (Thanks to guiuser) + - fix: Missing/Incorrect POD + - Made changes to spectre to handle finished workflows better. + - Added filter to groups and ldap connections to filter out group members in cases where the ldap group propery and the recursive group poperty are the same + + +7.0.0 + - Welcome to a whole new world of WebGUI. After 2.5 years and 20,000 hours of + development, WebGUI 7 is finally here. + - Fixed a bug in the asset manager where you could be redirected to a wrong + page after using the delete, copy, cut, duplicate buttons. + - fix: Can't set View Purchase History Template in commerce settings + - fix: Template toolbar missing for Transaction Error Template + - fix: Page fails and cannot be edited except through the db if custom rich editor deleted. + - fix: Search returns not restricted to chosen path or asset type + - fix: Product Asset - specification labels not showing + - fix: Folders displayed for underprivileged users (wouter / Procolix) + - fix: Secure the search function + - fix: Export Functionality + - fix: Search displays already deleted files + - fix: Pagination not working in User Management System + - fix: Upgrade 6.8.10 to 6.99.5 (Thanks to Erik Svanberg for the patch) + - fix: Adding Survey Choices + - fix: User/Group problem + - fix: Edit LDAP Connection + - fix: SQL Report w/ pagination and nested queries + - fix: Unable to add Web Services Client + - Fixed a bug in spectre where it wasn't using session cookies. + - Fixed a bug in spectre where you couldn't shut it down if you started it on + an IP other than 127.0.0.1. + - Made the Include macro more secure. + - Added Len's patch to fix some caching problems. + diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index a8ad3a33a..d8bb48049 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -86,7 +86,8 @@ sub contentHandler { ### nstantiate the API for this httpd instance. my $s = Apache2::ServerUtil->server; ### Open new or existing user session based on user-agent's cookie. - my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile,$r, $s); + my $request = Apache2::Request->new($r); + my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile, $request, $s); if ($session->env->get("HTTP_X_MOZ") eq "prefetch") { # browser prefetch is a bad thing $session->http->setStatus("403","We don't allow prefetch, because it increases bandwidth, hurts stats, and can break web sites."); $session->http->sendHeader; @@ -411,7 +412,8 @@ sub uploadsHandler { my @privs = split("\n",$fileContents); unless ($privs[1] eq "7" || $privs[1] eq "1") { my $s = Apache2::ServerUtil->server; - my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile,$r, $s); + my $request = Apache2::Request->new($r); + my $session = WebGUI::Session->open($s->dir_config('WebguiRoot'),$configFile, $request, $s); my $hasPrivs = ($session->var->get("userId") eq $privs[0] || $session->user->isInGroup($privs[1]) || $session->user->isInGroup($privs[2])); $session->close(); if ($hasPrivs) { diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index 39c57c45e..50e288c19 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -15,7 +15,6 @@ package WebGUI::Session; =cut use strict; -use Apache2::Request; use WebGUI::Config; use WebGUI::SQL; use WebGUI::User; @@ -368,7 +367,7 @@ sub open { my $config = WebGUI::Config->new($webguiRoot,$configFile); my $self = {_config=>$config, _server=>$server}; bless $self , $class; - $self->{_request} = Apache2::Request->new($request) if (defined $request); + $self->{_request} = $request if (defined $request); my $sessionId = shift || $self->http->getCookies->{"wgSession"} || $self->id->generate; $sessionId = $self->id->generate unless $self->id->valid($sessionId); my $noFuss = shift; diff --git a/lib/WebGUI/Session/Http.pm b/lib/WebGUI/Session/Http.pm index 03bb50415..8a505da60 100644 --- a/lib/WebGUI/Session/Http.pm +++ b/lib/WebGUI/Session/Http.pm @@ -16,8 +16,6 @@ package WebGUI::Session::Http; use strict; -use Apache2::Cookie; -use APR::Request::Apache2; =head1 NAME @@ -78,6 +76,8 @@ Retrieves the cookies from the HTTP header and returns a hash reference containi sub getCookies { my $self = shift; if ($self->session->request) { + # Have to require this instead of using it otherwise it causes problems for command-line scripts on some platforms (namely Windows) + require APR::Request::Apache2; my $jarHashRef = APR::Request::Apache2->handle($self->session->request)->jar(); return $jarHashRef if $jarHashRef; return {}; @@ -267,6 +267,7 @@ sub setCookie { my $ttl = shift; $ttl = (defined $ttl ? $ttl : '+10y'); if ($self->session->request) { + require Apache2::Cookie; my $cookie = Apache2::Cookie->new($self->session->request, -name=>$name, -value=>$value, diff --git a/lib/WebGUI/Storage.pm b/lib/WebGUI/Storage.pm index 2ad04d6b6..3963272df 100644 --- a/lib/WebGUI/Storage.pm +++ b/lib/WebGUI/Storage.pm @@ -24,8 +24,6 @@ use Storable qw(nstore retrieve); use strict; use warnings; use WebGUI::Utility; -use Apache2::Request; -use Apache2::Upload; =head1 NAME @@ -198,6 +196,8 @@ sub addFileFromFormPost { my $formVariableName = shift; my $attachmentLimit = shift || 99999; return "" if ($self->session->http->getStatus() =~ /^413/); + require Apache2::Request; + require Apache2::Upload; my $filename; my $attachmentCount = 1; foreach my $upload ($self->session->request->upload($formVariableName)) {