summaryrefslogtreecommitdiffstats
path: root/t/daemon-gitweb-via-perms.t
blob: 8707e191a215187be854b0c61e3a1cf4e9bf4556 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/perl
use strict;
use warnings;

# this is hardcoded; change it if needed
use lib "src/lib";
use Gitolite::Test;

# basic tests
# ----------------------------------------------------------------------

try "plan 24";
try "DEF POK = !/DENIED/; !/failed to push/";

confreset;confadd '

@leads = u1 u2
@devs = u1 u2 u3 u4

@gbar = bar/CREATOR/..*
repo    @gbar
    C               =   @leads
    RW+             =   @leads
    RW              =   WRITERS @devs
    R               =   READERS
';

try "ADMIN_PUSH set1; !/FATAL/" or die text();

my $rb = `gitolite query-rc -n GL_REPO_BASE`;
chdir($rb);
my $h = $ENV{HOME};

try "
    glt ls-remote u1 file:///bar/u1/try1
    /Initialized empty Git repository in .*/bar/u1/try1.git/

    find . -name git-daemon-export-ok
    /testing.git/git-daemon-export-ok/

    cat $h/projects.list
    /testing.git/

    glt ls-remote u1 file:///bar/u1/try2
    /Initialized empty Git repository in .*/bar/u1/try2.git/

    find $h/repositories -name git-daemon-export-ok
    /testing.git/git-daemon-export-ok/

    cat $h/projects.list
    /testing.git/

    glt perms u1 bar/u1/try1 + READERS daemon
    !/./

    glt perms u1 bar/u1/try1 -l
    /READERS daemon/

    find $h/repositories -name git-daemon-export-ok
    /repositories/testing.git/git-daemon-export-ok/
    /repositories/bar/u1/try1.git/git-daemon-export-ok/

    cat $h/projects.list
    /testing.git/

    glt perms u1 bar/u1/try2 + READERS gitweb

    glt perms u1 bar/u1/try2 -l
    /READERS gitweb/

    find $h/repositories -name git-daemon-export-ok
    /testing.git/git-daemon-export-ok/
    /bar/u1/try1.git/git-daemon-export-ok/

    cat $h/projects.list
    /bar/u1/try2.git/
    /testing.git/
";