File tree Expand file tree Collapse file tree 5 files changed +381
-12
lines changed Expand file tree Collapse file tree 5 files changed +381
-12
lines changed Original file line number Diff line number Diff line change @@ -8,8 +8,11 @@ class Logs < Endpoint
8
8
get '/:id' do |id |
9
9
resource = service ( :find_log , id : params [ :id ] ) . run
10
10
job = resource ? Job . find ( resource . job_id ) : nil
11
+
12
+ halt 404 unless job
13
+
11
14
repo = Travis ::API ::V3 ::Models ::Repository . find ( job . repository . id )
12
- repo_can_write = !!repo . users . where ( id : current_user . id , permissions : { push : true } ) . first
15
+ repo_can_write = current_user ? !!repo . users . where ( id : current_user . id , permissions : { push : true } ) . first : false
13
16
14
17
raise LogExpired if repo . user_settings . job_log_time_based_limit && job . started_at < Time . now - repo . user_settings . job_log_access_older_than_days . days
15
18
raise LogAccessDenied if repo . user_settings . job_log_access_based_limit && !repo_can_write
Original file line number Diff line number Diff line change 1
1
module Travis ::API ::V3
2
2
class Queries ::Log < RemoteQuery
3
- def find_by_job_id ( repo_can_write , job_id )
4
- find repo_can_write , Models ::Job . find ( job_id )
3
+ def find_by_job_id ( job_id )
4
+ find Models ::Job . find ( job_id )
5
5
end
6
6
7
- def find ( repo_can_write , job )
7
+ def find ( job )
8
8
@job = job
9
- raise LogExpired if job . repository . user_settings . job_log_time_based_limit && job . started_at < Time . now - job . repository . user_settings . job_log_access_older_than_days . days
10
- raise LogAccessDenied if job . repository . user_settings . job_log_access_based_limit && !repo_can_write
11
-
12
9
remote_log = Travis ::RemoteLog ::Remote . new ( platform : platform ) . find_by_job_id ( platform_job_id )
13
10
raise EntityMissing , 'log not found' . freeze if remote_log . nil?
11
+
14
12
log = Travis ::API ::V3 ::Models ::Log . new ( remote_log : remote_log , job : job )
15
13
# if the log has been archived, go to s3
16
14
if log . archived?
Original file line number Diff line number Diff line change @@ -6,8 +6,11 @@ def run!
6
6
job = Models ::Job . find ( params [ 'job.id' ] )
7
7
repo_can_write = access_control . user ? !!job . repository . users . where ( id : access_control . user . id , permissions : { push : true } ) . first : false
8
8
9
- log = query . find ( repo_can_write , job )
9
+ log = query . find ( job )
10
10
raise ( NotFound , :log ) unless access_control . visible? log
11
+ raise LogExpired if job . repository . user_settings . job_log_time_based_limit && job . started_at < Time . now - job . repository . user_settings . job_log_access_older_than_days . days
12
+ raise LogAccessDenied if job . repository . user_settings . job_log_access_based_limit && !repo_can_write
13
+
11
14
result log
12
15
end
13
16
end
You can’t perform that action at this time.
0 commit comments