diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-07-08 12:03:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-08 12:03:45 +0200 |
commit | 63c7fe8e4892b22e80c015bf0ecb04496318623b (patch) | |
tree | c724cb6e1006dbd1d5cccd3719d096ff62124644 /app/controllers/concerns/account_owned_concern.rb | |
parent | f14776475d285bb7d2831a20192c1611c733f410 (diff) |
Refactor controllers for statuses, accounts, and more (#11249)
Diffstat (limited to 'app/controllers/concerns/account_owned_concern.rb')
-rw-r--r-- | app/controllers/concerns/account_owned_concern.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/controllers/concerns/account_owned_concern.rb b/app/controllers/concerns/account_owned_concern.rb new file mode 100644 index 000000000..99c240fe9 --- /dev/null +++ b/app/controllers/concerns/account_owned_concern.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module AccountOwnedConcern + extend ActiveSupport::Concern + + included do + before_action :set_account, if: :account_required? + before_action :check_account_approval, if: :account_required? + before_action :check_account_suspension, if: :account_required? + end + + private + + def account_required? + true + end + + def set_account + @account = Account.find_local!(username_param) + end + + def username_param + params[:account_username] + end + + def check_account_approval + not_found if @account.local? && @account.user_pending? + end + + def check_account_suspension + expires_in(3.minutes, public: true) && gone if @account.suspended? + end +end |