Skip to content

Commit 04507e3

Browse files
committed
Add spec
1 parent fd693a3 commit 04507e3

File tree

5 files changed

+381
-12
lines changed

5 files changed

+381
-12
lines changed

lib/travis/api/app/endpoint/logs.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ class Logs < Endpoint
88
get '/:id' do |id|
99
resource = service(:find_log, id: params[:id]).run
1010
job = resource ? Job.find(resource.job_id) : nil
11+
12+
halt 404 unless job
13+
1114
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
1316

1417
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
1518
raise LogAccessDenied if repo.user_settings.job_log_access_based_limit && !repo_can_write

lib/travis/api/v3/queries/log.rb

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
module Travis::API::V3
22
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)
55
end
66

7-
def find(repo_can_write, job)
7+
def find(job)
88
@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-
129
remote_log = Travis::RemoteLog::Remote.new(platform: platform).find_by_job_id(platform_job_id)
1310
raise EntityMissing, 'log not found'.freeze if remote_log.nil?
11+
1412
log = Travis::API::V3::Models::Log.new(remote_log: remote_log, job: job)
1513
# if the log has been archived, go to s3
1614
if log.archived?

lib/travis/api/v3/services/log/find.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@ def run!
66
job = Models::Job.find(params['job.id'])
77
repo_can_write = access_control.user ? !!job.repository.users.where(id: access_control.user.id, permissions: { push: true }).first : false
88

9-
log = query.find(repo_can_write, job)
9+
log = query.find(job)
1010
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+
1114
result log
1215
end
1316
end

0 commit comments

Comments
 (0)