67 lines
1.6 KiB
Ruby
67 lines
1.6 KiB
Ruby
class ApplicationController < ActionController::Base
|
|
rescue_from DeviseLdapAuthenticatable::LdapException do |exception|
|
|
render :text => exception, :status => 500
|
|
end
|
|
|
|
before_action :sentry_set_user
|
|
|
|
def sentry_set_user
|
|
return unless Setting.sentry_enabled
|
|
|
|
if user_signed_in?
|
|
Sentry.set_user(id: current_user.id, username: current_user.cn)
|
|
else
|
|
Sentry.set_user({})
|
|
end
|
|
end
|
|
|
|
def require_user_signed_in
|
|
unless user_signed_in?
|
|
redirect_to welcome_path and return
|
|
end
|
|
end
|
|
|
|
def require_user_signed_out
|
|
if user_signed_in?
|
|
redirect_to root_path and return
|
|
end
|
|
end
|
|
|
|
def authorize_admin
|
|
http_status :forbidden unless current_user.is_admin?
|
|
end
|
|
|
|
def http_status(status)
|
|
respond_to do |format|
|
|
format.html { render template: "shared/status_#{status.to_s}", status: status }
|
|
format.any { head status }
|
|
end
|
|
end
|
|
|
|
def after_sign_in_path_for(user)
|
|
session[:user_return_to] || root_path
|
|
end
|
|
|
|
def lndhub_authenticate(options={})
|
|
if session[:ln_auth_token].present? && !options[:force_reauth]
|
|
@ln_auth_token = session[:ln_auth_token]
|
|
else
|
|
lndhub = Lndhub.new
|
|
auth_token = lndhub.authenticate(current_user)
|
|
session[:ln_auth_token] = auth_token
|
|
@ln_auth_token = auth_token
|
|
end
|
|
rescue => e
|
|
Sentry.capture_exception(e) if Setting.sentry_enabled?
|
|
end
|
|
|
|
def lndhub_fetch_balance
|
|
@balance = LndhubManager::FetchUserBalance.call(auth_token: @ln_auth_token)
|
|
rescue AuthError
|
|
lndhub_authenticate(force_reauth: true)
|
|
raise if @fetch_balance_retried
|
|
@fetch_balance_retried = true
|
|
lndhub_fetch_balance
|
|
end
|
|
end
|