| @@ -0,0 +1,26 @@ | |||||
| class Traces::BaseController < ApplicationController | |||||
| helper_method :observed_logged_user?, :observed_user | |||||
| before_action :check_trace_system | |||||
| def observed_user | |||||
| @_observed_user ||= (User.find_by_login(params[:user_id]) || User.find_by_id(params[:user_id])) | |||||
| end | |||||
| def observed_logged_user? | |||||
| observed_user.id == User.current&.id | |||||
| end | |||||
| protected | |||||
| def check_auth | |||||
| return render_forbidden unless current_user.admin? || observed_logged_user? | |||||
| end | |||||
| def check_trace_system | |||||
| code, data, error = Trace::SystemInfoService.call(current_user.trace_token) | |||||
| return render_ok({code: 501, data: {operate_time: data['operate_time']}, message: '系统维护中'}) if data['status'] === 0 | |||||
| rescue | |||||
| # 这里根据需求跳转到404 | |||||
| return render_not_found | |||||
| end | |||||
| end | |||||