summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-12-07 21:57:55 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-12-07 21:57:55 +0000
commitf252108f30637e8a9d1660870a5f5c84fed429b4 (patch)
tree61b85d233fcd1a0bb80f5718138072844caa5dd2
parent6d5738071203971ab2887cb6e77609f3a5db1ff6 (diff)
downloadredmine-f252108f30637e8a9d1660870a5f5c84fed429b4.tar.gz
redmine-f252108f30637e8a9d1660870a5f5c84fed429b4.zip
Merged r7834 from trunk (#9566).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@8119 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--extra/svn/Redmine.pm15
1 files changed, 8 insertions, 7 deletions
diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm
index 8fbd229ff..8e0597a1f 100644
--- a/extra/svn/Redmine.pm
+++ b/extra/svn/Redmine.pm
@@ -149,15 +149,16 @@ sub RedmineDSN {
$self->{RedmineDSN} = $arg;
my $query = "SELECT
hashed_password, salt, auth_source_id, permissions
- FROM members, projects, users, roles, member_roles
+ FROM projects, users, roles
WHERE
- projects.id=members.project_id
- AND member_roles.member_id=members.id
- AND users.id=members.user_id
- AND roles.id=member_roles.role_id
+ users.login=?
+ AND projects.identifier=?
AND users.status=1
- AND login=?
- AND identifier=? ";
+ AND (
+ roles.id IN (SELECT member_roles.role_id FROM members, member_roles WHERE members.user_id = users.id AND members.project_id = projects.id AND members.id = member_roles.member_id)
+ OR
+ (roles.builtin=1 AND cast(projects.is_public as CHAR) IN ('t', '1'))
+ ) ";
$self->{RedmineQuery} = trim($query);
}