Project

General

Profile

Patch #3477 ยป no-need-for-svn-private.diff

Faidon Liambotis, 2009-06-10 21:54

View differences:

extra/svn/Redmine.pm (working copy)
15 15
database without an hassle but you need to have apache/mod_perl on the
16 16
svn server.
17 17

  
18
This can also be useful on other kinds of revision control systems
19
(for instance, Mercurial), but YMMV.
20

  
18 21
=head1 INSTALLATION
19 22

  
20 23
For this to automagically work, you need to have a recent reposman.rb
......
62 65
     # RedmineDbWhereClause "and members.role_id IN (1,2)"
63 66
     ## Optional credentials cache size
64 67
     # RedmineCacheCredsMax 50
65
  </Location>
66 68

  
67
To be able to browse repository inside redmine, you must add something
68
like that :
69

  
70
   <Location /svn-private>
71
     DAV svn
72
     SVNParentPath "/var/svn"
73
     Order deny,allow
74
     Deny from all
75
     # only allow reading orders
69
     # the following is needed to be able to
70
     # browse the repository inside redmine
76 71
     <Limit GET PROPFIND OPTIONS REPORT>
72
       Order deny,allow
73
       Deny from all
77 74
       Allow from redmine.server.ip
75
       Satisfy any
78 76
     </Limit>
79
   </Location>
80 77

  
81
and you will have to use this reposman.rb command line to create repository :
78
  </Location>
82 79

  
83
  reposman.rb --redmine my.redmine.server --svn-dir /var/svn --owner www-data -u http://svn.server/svn-private/
80
You will have to use this reposman.rb command line to create the repository :
84 81

  
82
  reposman.rb --redmine my.redmine.server --svn-dir /var/svn --owner www-data -u http://svn.server/svn/
83

  
85 84
=head1 MIGRATION FROM OLDER RELEASES
86 85

  
87 86
If you use an older reposman.rb (r860 or before), you need to change
......
108 107
use Apache2::ServerRec qw();
109 108
use Apache2::RequestRec qw();
110 109
use Apache2::RequestUtil qw();
111
use Apache2::Const qw(:common :override :cmd_how);
110
use Apache2::Const qw(:common :override :cmd_how :satisfy);
112 111
use APR::Pool ();
113 112
use APR::Table ();
114 113

  
......
197 196
sub access_handler {
198 197
  my $r = shift;
199 198

  
200
  unless ($r->some_auth_required) {
199
  unless ($r->some_auth_required || $r->satisfies == SATISFY_ANY) {
201 200
      $r->log_reason("No authentication has been configured");
202 201
      return FORBIDDEN;
203 202
  }
......
210 209
  $r->set_handlers(PerlAuthenHandler => [\&OK])
211 210
      if is_public_project($project_id, $r);
212 211

  
213
  return OK
212
  return OK;
214 213
}
215 214

  
216 215
sub authen_handler {
    (1-1/1)