Sha256: 51f29291527dcb9b919a776c83cf1a3317f4ea3048dce70738b1ff0149e7ee47

Contents?: true

Size: 1.64 KB

Versions: 7

Compression:

Stored size: 1.64 KB

Contents

class CamaleonCms::Admin::PluginsController < CamaleonCms::AdminController
  before_action :validate_role
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.plugins")
  def index
    PluginRoutes.reload
  end

  def toggle
    status = params[:status].to_bool
    if status == true # to inactivate
      plugin = plugin_uninstall(params[:id])
      hooks_run("plugin_#{params[:id]}_after_uninstall", {plugin: plugin})
      flash[:notice] = "Plugin \"#{plugin.title}\" #{t('camaleon_cms.admin.message.was_inactivated')}"
    end

    unless status # to activate
      plugin = plugin_install(params[:id])
      hooks_run("plugin_#{params[:id]}_after_install", {plugin: plugin})
      flash[:notice] = "Plugin \"#{plugin.title}\" #{t('camaleon_cms.admin.message.was_activated')}"
    end
    PluginRoutes.reload
    redirect_to action: :index
  end

  # permit to upgrade a plugin for a new version
  def upgrade
    plugin = plugin_upgrade(params[:plugin_id])
    flash[:notice] = "Plugin \"#{plugin.title}\" #{t('camaleon_cms.admin.message.was_upgraded')}"
    hooks_run("plugin_#{params[:plugin_id]}_after_upgrade", {plugin: plugin})
    PluginRoutes.reload
    redirect_to action: :index
  end

  def destroy
    plugin = plugin_destroy(params[:id])
    if plugin.error
      flash[:notice] = "Plugin \"#{plugin.title}\" #{t('camaleon_cms.admin.message.was_removed')}"
    else
      flash[:error] = "Plugin \"#{plugin.title}\" #{t('camaleon_cms.admin.message.can_not_be_removed')}"
    end
    hooks_run("plugin_#{params[:id]}_after_destroy", {plugin: plugin})
    redirect_to action: :index
  end

  private

  def validate_role
    authorize! :manage, :plugins
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
camaleon_cms-2.3.6 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.5 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.4 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.3 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.2 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.1 app/controllers/camaleon_cms/admin/plugins_controller.rb
camaleon_cms-2.3.0 app/controllers/camaleon_cms/admin/plugins_controller.rb