summaryrefslogtreecommitdiffstats
path: root/extra
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-11-15 18:02:10 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-11-15 18:02:10 +0000
commit2beeae00a23a5d43c3be1cdc72c76a02d21e317b (patch)
tree270ca5411df4f69500be64135b42bce7d541b4ca /extra
parent36afbc41b61ce3a95b004bc1ae4a93cd415cb28d (diff)
downloadredmine-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')
-rw-r--r--extra/svn/Redmine.pm31
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 {