comparison extra/svn/.svn/text-base/Redmine.pm.svn-base @ 245:051f544170fe

* Update to SVN trunk revision 4993
author Chris Cannam
date Thu, 03 Mar 2011 11:42:28 +0000
parents 94944d00e43c
children
comparison
equal deleted inserted replaced
244:8972b600f4fb 245:051f544170fe
146 146
147 sub RedmineDSN { 147 sub RedmineDSN {
148 my ($self, $parms, $arg) = @_; 148 my ($self, $parms, $arg) = @_;
149 $self->{RedmineDSN} = $arg; 149 $self->{RedmineDSN} = $arg;
150 my $query = "SELECT 150 my $query = "SELECT
151 hashed_password, auth_source_id, permissions 151 hashed_password, salt, auth_source_id, permissions
152 FROM members, projects, users, roles, member_roles 152 FROM members, projects, users, roles, member_roles
153 WHERE 153 WHERE
154 projects.id=members.project_id 154 projects.id=members.project_id
155 AND member_roles.member_id=members.id 155 AND member_roles.member_id=members.id
156 AND users.id=members.user_id 156 AND users.id=members.user_id
314 my $query = $cfg->{RedmineQuery}; 314 my $query = $cfg->{RedmineQuery};
315 my $sth = $dbh->prepare($query); 315 my $sth = $dbh->prepare($query);
316 $sth->execute($redmine_user, $project_id); 316 $sth->execute($redmine_user, $project_id);
317 317
318 my $ret; 318 my $ret;
319 while (my ($hashed_password, $auth_source_id, $permissions) = $sth->fetchrow_array) { 319 while (my ($hashed_password, $salt, $auth_source_id, $permissions) = $sth->fetchrow_array) {
320 320
321 unless ($auth_source_id) { 321 unless ($auth_source_id) {
322 my $method = $r->method; 322 my $method = $r->method;
323 if ($hashed_password eq $pass_digest && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) { 323 my $salted_password = Digest::SHA1::sha1_hex($salt.$pass_digest);
324 if ($hashed_password eq $salted_password && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) {
324 $ret = 1; 325 $ret = 1;
325 last; 326 last;
326 } 327 }
327 } elsif ($CanUseLDAPAuth) { 328 } elsif ($CanUseLDAPAuth) {
328 my $sthldap = $dbh->prepare( 329 my $sthldap = $dbh->prepare(