mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
This can be done because the method is defined in OFN's ApplicationController, so spree_current_user is available in all controllers
37 lines
993 B
Ruby
37 lines
993 B
Ruby
module Spree
|
|
module Admin
|
|
class MailMethodsController < Spree::Admin::BaseController
|
|
after_action :initialize_mail_settings
|
|
|
|
def update
|
|
params.each do |name, value|
|
|
next unless Spree::Config.has_preference? name
|
|
|
|
Spree::Config[name] = value
|
|
end
|
|
|
|
flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:mail_methods))
|
|
render :edit
|
|
end
|
|
|
|
def testmail
|
|
if TestMailer.test_email(spree_current_user).deliver
|
|
flash[:success] = Spree.t('admin.mail_methods.testmail.delivery_success')
|
|
else
|
|
flash[:error] = Spree.t('admin.mail_methods.testmail.delivery_error')
|
|
end
|
|
rescue StandardError => e
|
|
flash[:error] = Spree.t('admin.mail_methods.testmail.error') % { e: e }
|
|
ensure
|
|
redirect_to edit_admin_mail_methods_url
|
|
end
|
|
|
|
private
|
|
|
|
def initialize_mail_settings
|
|
Spree::Core::MailSettings.init
|
|
end
|
|
end
|
|
end
|
|
end
|