X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/a5d35df250559cb050af68ec1d0b62fe2e77bf9fc8182ec3ca2f20e28dc36b92..8832ebdc29c3d5ae8676aa305a335213d2662fdd4977954daf10eb42e71a3a6d:/INSTALL diff --git a/INSTALL b/INSTALL index f048ad9..29446ef 100644 --- a/INSTALL +++ b/INSTALL @@ -166,6 +166,27 @@ Gitweb repositories shows repositories only if this file exists in its object database (if directory has the magic file named $export_ok). +- Finally, it is possible to specify an arbitrary perl subroutine that + will be called for each project to determine if it can be exported. + The subroutine receives an absolute path to the project as its only + parameter. + + For example, if you use mod_perl to run the script, and have dumb + http protocol authentication configured for your repositories, you + can use the following hook to allow access only if the user is + authorized to read the files: + + $export_auth_hook = sub { + use Apache2::SubRequest (); + use Apache2::Const -compile => qw(HTTP_OK); + my $path = "$_[0]/HEAD"; + my $r = Apache2::RequestUtil->request; + my $sub = $r->lookup_file($path); + return $sub->filename eq $path + && $sub->status == Apache2::Const::HTTP_OK; + }; + + Generating projects list using gitweb ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~