mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-02 20:18:08 +00:00
- Refactor HandleStripeEventService to better manage features by plan - Add constants for features available in each plan tier (Startup, Business, Enterprise) - Add channel_instagram to Startup plan features - Improve downgrade handling to properly disable higher-tier features - Clean up and optimize tests for maintainability - Add comprehensive test coverage for plan upgrades and downgrades --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
71 lines
2.4 KiB
Ruby
71 lines
2.4 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)
|
|
# rubocop:disable Rails/I18nLocaleTexts
|
|
redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account seeding triggered')
|
|
# rubocop:enable Rails/I18nLocaleTexts
|
|
end
|
|
|
|
def reset_cache
|
|
requested_resource.reset_cache_keys
|
|
# rubocop:disable Rails/I18nLocaleTexts
|
|
redirect_back(fallback_location: [namespace, requested_resource], notice: 'Cache keys cleared')
|
|
# rubocop:enable Rails/I18nLocaleTexts
|
|
end
|
|
|
|
def destroy
|
|
account = Account.find(params[:id])
|
|
|
|
DeleteObjectJob.perform_later(account) if account.present?
|
|
# rubocop:disable Rails/I18nLocaleTexts
|
|
redirect_back(fallback_location: [namespace, requested_resource], notice: 'Account deletion is in progress.')
|
|
# rubocop:enable Rails/I18nLocaleTexts
|
|
end
|
|
end
|
|
|
|
SuperAdmin::AccountsController.prepend_mod_with('SuperAdmin::AccountsController')
|