summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiwiusz Ociepa <liwiusz.ociepa@softwarelab.eu>2008-04-28 17:49:49 +0000
committerLiwiusz Ociepa <liwiusz.ociepa@softwarelab.eu>2008-04-28 17:49:49 +0000
commitd9385ce9a2b4aef8e9744106348cffcbcd333efa (patch)
tree43bb44d654323450f3a273fd5d6166a5f1151966
parentd3522c10e4b7d15aab9f8f262c766666ad7fc9cd (diff)
downloadredmine-d9385ce9a2b4aef8e9744106348cffcbcd333efa.tar.gz
redmine-d9385ce9a2b4aef8e9744106348cffcbcd333efa.zip
Add support for db_where_clause - that variable is appended to password query.
git-svn-id: http://redmine.rubyforge.org/svn/branches/swistak@1378 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--extra/svn/Redmine.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/extra/svn/Redmine.pm b/extra/svn/Redmine.pm
index 6f3ba4385..49bebf51d 100644
--- a/extra/svn/Redmine.pm
+++ b/extra/svn/Redmine.pm
@@ -58,6 +58,9 @@ Authen::Simple::LDAP (and IO::Socket::SSL if LDAPS is used):
PerlSetVar db_user redmine
PerlSetVar db_pass password
+ # Optional where clause (fulltext search would be slow - and
+ # is database dependant).
+ # PerlSetVar db_where_clause "and members.role_id IN (1,2)"
</Location>
To be able to browse repository inside redmine, you must add something
@@ -182,8 +185,10 @@ sub is_member {
my $pass_digest = Digest::SHA1::sha1_hex($redmine_pass);
+ my $query = "SELECT hashed_password, auth_source_id FROM members, projects, users WHERE projects.id=members.project_id AND users.id=members.user_id AND users.status=1 AND login=? AND identifier=? ";
+ my ($where_clause) = map { $r->dir_config($_) } qw/db_where_clause/;
my $sth = $dbh->prepare(
- "SELECT hashed_password, auth_source_id FROM members, projects, users WHERE projects.id=members.project_id AND users.id=members.user_id AND users.status=1 AND login=? AND identifier=?;"
+ $query.($where_clause ? $where_clause : "").";"
);
$sth->execute($redmine_user, $project_id);