l4d.tools/app/controllers/job_logs_controller.rb
2026-01-18 19:07:38 +01:00

36 lines
993 B
Ruby

class JobLogsController < ApplicationController
before_action :set_server, only: [ :index ], if: -> { params[:server_id].present? }
before_action :set_job_log, only: [ :show ]
def index
@job_logs = if @server
@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_server
@server = current_user.servers.find(params[:server_id])
end
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