From c0ee0a694ceabfb920b92f10ff0ad257cb1ba4e4 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 15 Aug 2022 15:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=BA=AF=E6=BA=90status=E6=94=B9=E4=B8=BAcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/traces/base_controller.rb | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 app/controllers/traces/base_controller.rb diff --git a/app/controllers/traces/base_controller.rb b/app/controllers/traces/base_controller.rb new file mode 100644 index 000000000..30970a5b8 --- /dev/null +++ b/app/controllers/traces/base_controller.rb @@ -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 \ No newline at end of file