diff options
author | Reverite <github@reverite.sh> | 2019-07-31 01:41:31 -0700 |
---|---|---|
committer | Reverite <github@reverite.sh> | 2019-07-31 01:41:31 -0700 |
commit | 7a312a38f904e853f5703a0b678d0aec83fa858c (patch) | |
tree | eba4b787f6a617e1c2c5f7d4b5be66320212be1d /app/controllers/admin/instances_controller.rb | |
parent | 3013c6cb78358ed8a95a35d5db79608fcb06963f (diff) | |
parent | 4ecfa8f298399d9857737f212fc8f5767ffa7c6d (diff) |
Merge branch 'glitch' into production
Diffstat (limited to 'app/controllers/admin/instances_controller.rb')
-rw-r--r-- | app/controllers/admin/instances_controller.rb | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/app/controllers/admin/instances_controller.rb b/app/controllers/admin/instances_controller.rb index 7888e844f..d4f201807 100644 --- a/app/controllers/admin/instances_controller.rb +++ b/app/controllers/admin/instances_controller.rb @@ -2,6 +2,10 @@ module Admin class InstancesController < BaseController + before_action :set_domain_block, only: :show + before_action :set_domain_allow, only: :show + before_action :set_instance, only: :show + def index authorize :instance, :index? @@ -11,20 +15,38 @@ module Admin def show authorize :instance, :show? - @instance = Instance.new(Account.by_domain_accounts.find_by(domain: params[:id]) || DomainBlock.find_by!(domain: params[:id])) @following_count = Follow.where(account: Account.where(domain: params[:id])).count @followers_count = Follow.where(target_account: Account.where(domain: params[:id])).count @reports_count = Report.where(target_account: Account.where(domain: params[:id])).count @blocks_count = Block.where(target_account: Account.where(domain: params[:id])).count @available = DeliveryFailureTracker.available?(Account.select(:shared_inbox_url).where(domain: params[:id]).first&.shared_inbox_url) @media_storage = MediaAttachment.where(account: Account.where(domain: params[:id])).sum(:file_file_size) - @domain_block = DomainBlock.rule_for(params[:id]) end private + def set_domain_block + @domain_block = DomainBlock.rule_for(params[:id]) + end + + def set_domain_allow + @domain_allow = DomainAllow.rule_for(params[:id]) + end + + def set_instance + resource = Account.by_domain_accounts.find_by(domain: params[:id]) + resource ||= @domain_block + resource ||= @domain_allow + + if resource + @instance = Instance.new(resource) + else + not_found + end + end + def filtered_instances - InstanceFilter.new(filter_params).results + InstanceFilter.new(whitelist_mode? ? { allowed: true } : filter_params).results end def paginated_instances |