32 lines
894 B
Ruby
32 lines
894 B
Ruby
class JobLogsController < ApplicationController
|
|
before_action :set_job_log, only: [ :show ]
|
|
|
|
def index
|
|
@job_logs = if params[:server_id]
|
|
server = current_user.servers.find(params[:server_id])
|
|
server.job_logs.recent
|
|
else
|
|
JobLog.where(server_id: current_user.servers.pluck(:id))
|
|
.or(JobLog.where(server_id: nil))
|
|
.recent
|
|
end
|
|
@job_logs = @job_logs.page(params[:page]).per(20) if defined?(Kaminari)
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
private
|
|
|
|
def set_job_log
|
|
@job_log = JobLog.find(params[:id])
|
|
# Authorize: user must own the server or job must be global (no server)
|
|
unless @job_log.server_id.nil? || current_user.servers.exists?(id: @job_log.server_id)
|
|
redirect_to job_logs_path, alert: "Not authorized"
|
|
end
|
|
end
|
|
|
|
def authorize_user!
|
|
redirect_to root_path, alert: "Please log in" unless current_user
|
|
end
|
|
end
|