mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	Fixes: https://linear.app/chatwoot/issue/CW-1365/allow-super-admin-to-delete-an-account Co-authored-by: Sojan Jose <sojan@pepalo.com>
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class SuperAdmin::AccountsController < SuperAdmin::ApplicationController
 | 
						|
  # Overwrite any of the RESTful controller actions to implement custom behavior
 | 
						|
  # For example, you may want to send an email after a foo is updated.
 | 
						|
  #
 | 
						|
  # def update
 | 
						|
  #   super
 | 
						|
  #   send_foo_updated_email(requested_resource)
 | 
						|
  # end
 | 
						|
 | 
						|
  # Override this method to specify custom lookup behavior.
 | 
						|
  # This will be used to set the resource for the `show`, `edit`, and `update`
 | 
						|
  # actions.
 | 
						|
  #
 | 
						|
  # def find_resource(param)
 | 
						|
  #   Foo.find_by!(slug: param)
 | 
						|
  # end
 | 
						|
 | 
						|
  # The result of this lookup will be available as `requested_resource`
 | 
						|
 | 
						|
  # Override this if you have certain roles that require a subset
 | 
						|
  # this will be used to set the records shown on the `index` action.
 | 
						|
  #
 | 
						|
  # def scoped_resource
 | 
						|
  #   if current_user.super_admin?
 | 
						|
  #     resource_class
 | 
						|
  #   else
 | 
						|
  #     resource_class.with_less_stuff
 | 
						|
  #   end
 | 
						|
  # end
 | 
						|
 | 
						|
  # Override `resource_params` if you want to transform the submitted
 | 
						|
  # data before it's persisted. For example, the following would turn all
 | 
						|
  # empty values into nil values. It uses other APIs such as `resource_class`
 | 
						|
  # and `dashboard`:
 | 
						|
  #
 | 
						|
  def resource_params
 | 
						|
    permitted_params = super
 | 
						|
    permitted_params[:limits] = permitted_params[:limits].to_h.compact
 | 
						|
    permitted_params[:selected_feature_flags] = params[:enabled_features].keys.map(&:to_sym) if params[:enabled_features].present?
 | 
						|
    permitted_params
 | 
						|
  end
 | 
						|
 | 
						|
  # See https://administrate-prototype.herokuapp.com/customizing_controller_actions
 | 
						|
  # for more information
 | 
						|
 | 
						|
  def seed
 | 
						|
    Internal::SeedAccountJob.perform_later(requested_resource)
 | 
						|
    redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account seeding triggered')
 | 
						|
  end
 | 
						|
 | 
						|
  def destroy
 | 
						|
    account = Account.find(params[:id])
 | 
						|
 | 
						|
    DeleteObjectJob.perform_later(account) if account.present?
 | 
						|
    redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account deletion is in progress.')
 | 
						|
  end
 | 
						|
end
 |