*** bin/rdiff.orig Fri Mar 28 15:33:33 2003 --- bin/rdiff Fri Mar 28 15:59:45 2003 *************** *** 173,182 **** # check access permission my $wikiUserName = &TWiki::userToWikiName( $userName ); my $viewAccessOK = &TWiki::Access::checkAccessPermission( "view", $wikiUserName, "", $topic, $webName ); ! if( ( $TWiki::readTopicPermissionFailed ) || ( ! $viewAccessOK ) ) { ! my $url = &TWiki::getOopsUrl( $webName, $topic, "oopsaccessview" ); ! TWiki::redirect( $query, $url ); ! return; } # format "before" part --- 173,204 ---- # check access permission my $wikiUserName = &TWiki::userToWikiName( $userName ); my $viewAccessOK = &TWiki::Access::checkAccessPermission( "view", $wikiUserName, "", $topic, $webName ); ! if( ! $viewAccessOK ) { ! # Can't read requested topic and/or included (or other accessed topics ! # user could not be authenticated, may be not logged in yet? ! my $rdiffauthFile = $ENV{'SCRIPT_FILENAME'}; ! if ( $rdiffauth =~ /\/rdiffauth/ ) { ! # we are already authentified, this is a real access denied ! my $rurl = &TWiki::getOopsUrl( $webName, $topic, "oopsaccessview" ); ! TWiki::redirect( $query, $rurl ); ! return; ! } else { ! $rdiffauthFile =~ s|/rdiff|/rdiffauth|o; ! if( ( ! $theRemoteUser ) && (-e $rdiffauthFile ) ) { ! # try again with authenticated rdiffauth script ! # instead of non authenticated rdiff script ! my $rurl = $ENV{"REQUEST_URI"}; ! if( $rurl ) { ! # $rurl i.e. is "twiki/bin/rdiff.cgi/Web/Topic?cms1=val1&cmd2=val2" ! $rurl =~ s|/rdiff|/rdiffauth|o; ! $rurl = "$TWiki::urlHost$rurl"; ! } else { ! $rurl = "$TWiki::urlHost$scriptUrlPath/$rdiffauthFile/$webName/$topic"; ! } ! TWiki::redirect( $query, $rurl ); ! return; ! } ! } } # format "before" part