Gitweb para verificar os direitos de acesso com o gitolite

1

Sou vários repositórios git acessíveis a diferentes usuários. Quero permitir que os usuários naveguem por todos os repositórios aos quais ele ou ela tenha pelo menos acesso de LEITURA.

Para conseguir isso, eu tenho a seguinte configuração do gitweb:

$projectroot = '/var/lib/gitolite/repositories/';
$site_name = "my Git Repos";
$fallback_encoding = 'utf-8';
$projects_list = '/var/lib/gitolite/projects.list';
$strict_export = 1;

$export_auth_hook = sub {
    my $repo = shift;
    my $user = $ENV{GL_USER};
    # gitweb passes us the full repo path; so we strip the beginning                                                                                                                                               
    # and the end, to get the repo name as it is specified in gitolite conf                                                                                                                                        
    return unless $repo =~ s/^\Q$projectroot\E\/?(.+)\.git$/$1/;

    # check for (at least) "R" permission                                                                                                                                                                          
    my $ret = '/usr/local/bin/test_git_access_right $repo $user';
    my $res = $ret !~ /DENIED/;
    return ($ret !~ /DENIED/);
};

e o script test_git_access_right:

#!/bin/sh
su - git -c "gitolite access $*"

Meu problema é que o script test_git_acces_right não é executado (testado pela incorporação de um eco). Então, o que estou fazendo errado aqui?

Agradecemos antecipadamente por qualquer ajuda!

    
por Martin Schulze 30.12.2012 / 22:35

0 respostas

Tags