diff options
Diffstat (limited to 'extra')
-rw-r--r-- | extra/svn/Redmine.pm | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index 1b3b0910f..f608ee124 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -227,9 +227,38 @@ sub authen_handler { } } +# check if authentication is forced +sub is_authentication_forced { + my $r = shift; + + my $dbh = connect_database($r); + my $sth = $dbh->prepare( + "SELECT value FROM settings where settings.name = 'login_required';" + ); + + $sth->execute(); + my $ret = 0; + if (my @row = $sth->fetchrow_array) { + if ($row[0] eq "1" || $row[0] eq "t") { + $ret = 1; + } + } + $sth->finish(); + undef $sth; + + $dbh->disconnect(); + undef $dbh; + + $ret; +} + sub is_public_project { my $project_id = shift; my $r = shift; + + if (is_authentication_forced($r)) { + return 0; + } my $dbh = connect_database($r); my $sth = $dbh->prepare( |