Index: Redmine.pm =================================================================== --- Redmine.pm (revision 5506) +++ Redmine.pm (working copy) @@ -127,6 +127,11 @@ args_how => TAKE1, }, { + name => 'RedmineDbProject', + req_override => OR_AUTHCFG, + args_how => TAKE1, + }, + { name => 'RedmineDbPass', req_override => OR_AUTHCFG, args_how => TAKE1, @@ -163,6 +168,7 @@ sub RedmineDbUser { set_val('RedmineDbUser', @_); } sub RedmineDbPass { set_val('RedmineDbPass', @_); } +sub RedmineDbProject { set_val('RedmineDbProject', @_); } sub RedmineDbWhereClause { my ($self, $parms, $arg) = @_; $self->{RedmineQuery} = trim($self->{RedmineQuery}.($arg ? $arg : "")." "); @@ -301,11 +307,12 @@ my $r = shift; my $dbh = connect_database($r); - my $project_id = get_project_identifier($r); my $pass_digest = Digest::SHA1::sha1_hex($redmine_pass); my $cfg = Apache2::Module::get_config(__PACKAGE__, $r->server, $r->per_dir_config); + my $project_id = get_project_identifier_from_directive($cfg, $r); + my $usrprojpass; if ($cfg->{RedmineCacheCredsMax}) { $usrprojpass = $cfg->{RedmineCacheCreds}->get($redmine_user.":".$project_id); @@ -377,6 +384,13 @@ $identifier; } +sub get_project_identifier_from_directive { + my $cfg = shift; + my $r = shift; + return $cfg->{RedmineDbProject} if($cfg->{RedmineDbProject}); + return get_project_identifier($r); +} + sub connect_database { my $r = shift;