From 88774420b033970989d6484e9d56bcbea7b9d9db Mon Sep 17 00:00:00 2001 From: Kiwamu KATO Date: Thu, 25 Aug 2011 13:06:10 +0900 Subject: [PATCH 1/2] Added option to specify project identifier. --- extra/svn/Redmine.pm | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index c0320f13e04..4828ae8c059 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -62,6 +62,9 @@ Authen::Simple::LDAP (and IO::Socket::SSL if LDAPS is used): # RedmineDbWhereClause "and members.role_id IN (1,2)" ## Optional credentials cache size # RedmineCacheCredsMax 50 + ## Optional Redmine project identifier + # If not specified, identifier is generated from uri and location. + # RedmineProjectId hoge To be able to browse repository inside redmine, you must add something @@ -142,6 +145,11 @@ my @directives = ( args_how => TAKE1, errmsg => 'RedmineCacheCredsMax must be decimal number', }, + { + name => 'RedmineProjectId', + req_override => OR_AUTHCFG, + args_how => TAKE1, + }, ); sub RedmineDSN { @@ -178,6 +186,8 @@ sub RedmineCacheCredsMax { } } +sub RedmineProjectId { set_val('RedmineProjectId', @_); } + sub trim { my $string = shift; $string =~ s/\s{2,}/ /g; @@ -371,9 +381,18 @@ sub is_member { sub get_project_identifier { my $r = shift; - + my $cfg = Apache2::Module::get_config(__PACKAGE__, $r->server, $r->per_dir_config); + my $location = $r->location; - my ($identifier) = $r->uri =~ m{$location/*([^/]+)}; + my $identifier; + + if($cfg->{RedmineProjectId}) { + $location =~ /([^\/]+)\Z/; + $identifier = $1 + } else { + $identifier = $r->uri =~ m{$location/*([^/]+)}; + } + $identifier; } From 3a356429605fee9620aa36e099adaaffa37bc18b Mon Sep 17 00:00:00 2001 From: Kiwamu KATO Date: Tue, 6 Sep 2011 10:10:34 +0900 Subject: [PATCH 2/2] Modified a bug. --- extra/svn/Redmine.pm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index 4828ae8c059..c6f7a877294 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -386,9 +386,8 @@ sub get_project_identifier { my $location = $r->location; my $identifier; - if($cfg->{RedmineProjectId}) { - $location =~ /([^\/]+)\Z/; - $identifier = $1 + if($cfg->{RedmineProjectId}) { + $identifier = $cfg->{RedmineProjectId}; } else { $identifier = $r->uri =~ m{$location/*([^/]+)}; }