... | ... |
@@ -191,24 +191,16 @@ sub startup { |
191 | 191 |
my $r = $r->under(sub { |
192 | 192 |
my $self = shift; |
193 | 193 |
|
194 |
+ my $api = $self->gitprep_api; |
|
195 |
+ |
|
194 | 196 |
# Basic auth when push request |
195 | 197 |
my $service = $self->param('service') || ''; |
196 | 198 |
if ($service eq 'git-receive-pack') { |
197 | 199 |
|
198 | 200 |
$self->basic_auth("Git Area", sub { |
199 | 201 |
my ($user, $password) = @_; |
200 |
- |
|
201 |
- my $row |
|
202 |
- = $dbi->model('user')->select(['password', 'salt'], id => $user)->one; |
|
203 | 202 |
|
204 |
- return unless $row; |
|
205 |
- |
|
206 |
- my $api = $self->gitprep_api; |
|
207 |
- my $is_valid = $api->check_password( |
|
208 |
- $password, |
|
209 |
- $row->{salt}, |
|
210 |
- $row->{password} |
|
211 |
- ); |
|
203 |
+ my $is_valid = $api->check_user_and_password($user, $password); |
|
212 | 204 |
|
213 | 205 |
return $is_valid; |
214 | 206 |
}); |
... | ... |
@@ -240,13 +232,15 @@ sub startup { |
240 | 232 |
my $r = $r->under(sub { |
241 | 233 |
my $self = shift; |
242 | 234 |
|
235 |
+ # API |
|
236 |
+ my $api = $self->gitprep_api; |
|
237 |
+ |
|
243 | 238 |
# Private |
244 |
- my $session_user = $self->session('user'); |
|
245 | 239 |
my $user = $self->param('user'); |
246 | 240 |
my $project = $self->param('project'); |
247 | 241 |
my $private = $self->app->manager->is_private_project($user, $project); |
248 | 242 |
if ($private) { |
249 |
- if ($session_user eq $user) { |
|
243 |
+ if ($api->logined($user)) { |
|
250 | 244 |
return 1; |
251 | 245 |
} |
252 | 246 |
else { |
... | ... |
@@ -25,6 +25,23 @@ sub check_password { |
25 | 25 |
return md5_hex(md5_hex "$salt$password") eq $password_encrypted; |
26 | 26 |
} |
27 | 27 |
|
28 |
+sub check_user_and_password { |
|
29 |
+ my ($self, $user, $password) = @_; |
|
30 |
+ |
|
31 |
+ my $row |
|
32 |
+ = $self->app->dbi->model('user')->select(['password', 'salt'], id => $user)->one; |
|
33 |
+ |
|
34 |
+ return unless $row; |
|
35 |
+ |
|
36 |
+ my $is_valid = $self->check_password( |
|
37 |
+ $password, |
|
38 |
+ $row->{salt}, |
|
39 |
+ $row->{password} |
|
40 |
+ ); |
|
41 |
+ |
|
42 |
+ return $is_valid; |
|
43 |
+} |
|
44 |
+ |
|
28 | 45 |
sub new { |
29 | 46 |
my ($class, $cntl) = @_; |
30 | 47 |
|