Module: Decidim::UserBlockedChecker

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/concerns/decidim/user_blocked_checker.rb

Instance Method Summary collapse

Instance Method Details

#check_user_block_status(user) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/controllers/concerns/decidim/user_blocked_checker.rb', line 33

def check_user_block_status(user)
  if user.present? && user.blocked?
    sign_out user
    flash.delete(:notice)
    flash[:error] = t("decidim.account.blocked")
    root_path
  end
  if user.present? && user.access_locked?
    sign_out user
    flash.delete(:notice)
    flash[:error] = t("decidim.account.locked")
    root_path
  end
end

#check_user_not_blockedObject



29
30
31
# File 'app/controllers/concerns/decidim/user_blocked_checker.rb', line 29

def check_user_not_blocked
  check_user_block_status(current_user)
end

#store_request_metadataObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/concerns/decidim/user_blocked_checker.rb', line 14

def 
  Thread.current[:current_request] = ::ActiveSupport::HashWithIndifferentAccess.new(
    real_ip: request.ip || request.headers['X-Real-IP'],
    user_agent: request.headers['User-Agent'],
    xhr: request.xhr?,
    id: request.request_id,
    remote_ip: request.remote_ip,
    referrer: request.headers['Refer'],
    country: request.headers['X-GEO-COUNTRY-CODE']
  )
  yield
  ensure
    Thread.current[:current_request] = nil
end