[svn:p5ee] r13406 - p5ee/trunk/App-Context/lib/App/Request

[email protected] Wed, 21 Oct 2009 13:06:43 -0700 (PDT)
Newsgroups perl.cvs.p5ee
Message-ID <[email protected]>
Author: spadkins
Date: Wed Oct 21 13:06:37 2009
New Revision: 13406

Modified:
   p5ee/trunk/App-Context/lib/App/Request/CGI.pm

Log:
keep the app.Request.keep_url_params on the form tag url

Modified: p5ee/trunk/App-Context/lib/App/Request/CGI.pm
==============================================================================
--- p5ee/trunk/App-Context/lib/App/Request/CGI.pm	(original)
+++ p5ee/trunk/App-Context/lib/App/Request/CGI.pm	Wed Oct 21 13:06:37 2009
@@ -691,7 +691,22 @@
     my ($url);
     my $cgi = $self->{cgi};
     if ($cgi) {
-        $url = $cgi->url(-path_info=>1);
+        my $context = $self->{context};
+        my $options = $context->{options};
+        my (%keep_param);
+        if ($options->{"app.Request.keep_url_params"}) {
+            %keep_param = map { $_ => 1 } split(/[ ,]+/, $options->{"app.Request.keep_url_params"});
+        }
+        else {
+            %keep_param = ( u => 1, p => 1, eu => 1, eu_normal => 1 );
+        }
+        my $newcgi = CGI->new($cgi);
+        foreach my $param ($cgi->param()) {
+            if (!$keep_param{$param}) {
+                $newcgi->delete($param);
+            }
+        }
+        $url = $newcgi->url(-path_info=>1, -query_string=>1);
     }
     &App::sub_exit($url) if ($App::trace);
     return($url);