diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-11-15 18:02:10 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-11-15 18:02:10 +0000 |
commit | 2beeae00a23a5d43c3be1cdc72c76a02d21e317b (patch) | |
tree | 270ca5411df4f69500be64135b42bce7d541b4ca /extra/svn | |
parent | 36afbc41b61ce3a95b004bc1ae4a93cd415cb28d (diff) | |
download | redmine-2beeae00a23a5d43c3be1cdc72c76a02d21e317b.tar.gz redmine-2beeae00a23a5d43c3be1cdc72c76a02d21e317b.zip |
Reverted r7808 (#9566).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7813 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'extra/svn')
-rw-r--r-- | extra/svn/Redmine.pm | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm index 5c470d47d..1de891fcb 100644 --- a/extra/svn/Redmine.pm +++ b/extra/svn/Redmine.pm @@ -204,8 +204,6 @@ sub access_handler { my $method = $r->method; return OK unless defined $read_only_methods{$method}; - - return OK if is_authentication_forced($r); my $project_id = get_project_identifier($r); @@ -221,12 +219,6 @@ sub authen_handler { my ($res, $redmine_pass) = $r->get_basic_auth_pw(); return $res unless $res == OK; - my $project_id = get_project_identifier($r); - my $method = $r->method; - if (defined $read_only_methods{$method} && is_public_project($project_id, $r) && non_member_role_allows_browse_repository($r)) { - return OK; - } - if (is_member($r->user, $redmine_pass, $r)) { return OK; } else { @@ -263,6 +255,10 @@ sub is_authentication_forced { 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( @@ -284,16 +280,15 @@ sub is_public_project { $ret; } -sub system_role_allows_browse_repository { +sub anonymous_role_allows_browse_repository { my $r = shift; - my $system_role = shift; my $dbh = connect_database($r); my $sth = $dbh->prepare( - "SELECT permissions FROM roles WHERE builtin = ?;" + "SELECT permissions FROM roles WHERE builtin = 2;" ); - $sth->execute($system_role); + $sth->execute(); my $ret = 0; if (my @row = $sth->fetchrow_array) { if ($row[0] =~ /:browse_repository/) { @@ -308,18 +303,6 @@ sub system_role_allows_browse_repository { $ret; } -sub non_member_role_allows_browse_repository { - my $r = shift; - my $ret = system_role_allows_browse_repository($r, 1); - $ret; -} - -sub anonymous_role_allows_browse_repository { - my $r = shift; - my $ret = system_role_allows_browse_repository($r, 2); - $ret; -} - # perhaps we should use repository right (other read right) to check public access. # it could be faster BUT it doesn't work for the moment. # sub is_public_project_by_file { |