Redirect to the page you came from, when subscribing to a user.

        Patch by kareila. 

diffs (29 lines):

diff -r cbe5fd6cd290 -r bc40d2bf36ca htdocs/manage/subscriptions/user.bml
--- a/htdocs/manage/subscriptions/user.bml      Mon Jul 12 18:18:33 2010 +0800
+++ b/htdocs/manage/subscriptions/user.bml      Mon Jul 12 18:31:47 2010 +0800
@@ -89,9 +89,25 @@ body<=
             flags   => LJ::Subscription::TRACKING,
         );
 
+    # validate referer for ret_url
+    my $referer = BML::get_client_header('Referer');
+    $referer = $LJ::SITEROOT . $referer if $referer =~ /^\//;
+    if ( DW::Controller::validate_redirect_url( $referer ) ) {
+        # validate args
+        my ( $url, $args ) = ( $referer =~ /^(.*)\?(.*)$/ );
+        if ( $url && $args ) {
+            my %args = map { split( /=/, $_ ) } split( /&/, $args );
+            $args = LJ::viewing_style_args( %args );
+            $referer = $args ? "$url?$args" : $url;
+        }
+    } else {
+        $referer = undef;  # invalid redirect
+    }
+
     return LJ::subscribe_interface( $remote,
         categories => $categories,
         journal    => $journal,
+        ret_url    => $referer,
         post_to_settings_page => 1,
     );
 
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to