X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/ddedcbbdec61fb2d5feb6eb587c7fa938e346e7119cea0fe1ea565aa455ed983..acf68d9440c244d0e105ecaad8925a34ecf3ae7da9936a31d56785dcbfbb3a9e:/gitweb.perl diff --git a/gitweb.perl b/gitweb.perl index 6f5ee84..75d1c5b 100755 --- a/gitweb.perl +++ b/gitweb.perl @@ -10,6 +10,8 @@ use 5.008; use strict; use warnings; +# handle ACL in file access tests +use filetest 'access'; use CGI qw(:standard :escapeHTML -nosticky); use CGI::Util qw(unescape); use CGI::Carp qw(fatalsToBrowser set_message); @@ -3072,6 +3074,8 @@ sub git_get_projects_list { return if (m!^[/.]$!); # only directories can be git repositories return unless (-d $_); + # need search permission + return unless (-x $_); # don't traverse too deep (Find is super slow on os x) # $project_maxdepth excludes depth of $projectroot if (($File::Find::name =~ tr!/!!) - $pfxdepth > $project_maxdepth) { @@ -5966,6 +5970,9 @@ sub git_history_body { $cgi->a({-href => href(action=>"commitdiff", hash=>$commit)}, "commitdiff"); if ($ftype eq 'blob') { + print " | " . + $cgi->a({-href => href(action=>"blob_plain", hash_base=>$commit, file_name=>$file_name)}, "raw"); + my $blob_current = $file_hash; my $blob_parent = git_get_hash_by_path($commit, $file_name); if (defined $blob_current && defined $blob_parent &&