commit: ff142eb64d2d1251f9df1baa0b302fd532ec30ed
parent: 500e28442f8e6657de766fbdb4a4cfdb164b2b92
Author: masarakki <masaki182@gmail.com>
Date: Mon, 19 Jun 2017 22:12:31 +0900
setting-for-account-deletable (#3852)
Diffstat:
5 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/app/controllers/settings/deletes_controller.rb b/app/controllers/settings/deletes_controller.rb
@@ -3,6 +3,7 @@
class Settings::DeletesController < ApplicationController
layout 'admin'
+ before_action :check_enabled_deletion
before_action :authenticate_user!
def show
@@ -21,6 +22,10 @@ class Settings::DeletesController < ApplicationController
private
+ def check_enabled_deletion
+ redirect_to root_path unless Setting.open_deletion
+ end
+
def delete_params
params.require(:form_delete_confirmation).permit(:password)
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
@@ -13,6 +13,10 @@ module ApplicationHelper
Setting.open_registrations
end
+ def open_deletion?
+ Setting.open_deletion
+ end
+
def add_rtl_body_class(other_classes)
other_classes = "#{other_classes} rtl" if [:ar, :fa, :he].include?(I18n.locale)
other_classes
diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml
@@ -12,7 +12,8 @@
.actions
= f.button :button, t('generic.save_changes'), type: :submit
-%hr/
+- if open_deletion?
+ %hr/
-%h6= t('auth.delete_account')
-%p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
+ %h6= t('auth.delete_account')
+ %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
diff --git a/config/settings.yml b/config/settings.yml
@@ -14,6 +14,7 @@ defaults: &defaults
site_contact_email: ''
open_registrations: true
closed_registrations_message: ''
+ open_deletion: true
boost_modal: false
auto_play_gif: true
delete_modal: true
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
@@ -68,5 +68,19 @@ describe Settings::DeletesController do
expect(response).to redirect_to '/auth/sign_in'
end
end
+
+ context do
+ around do |example|
+ open_deletion = Setting.open_deletion
+ example.run
+ Setting.open_deletion = open_deletion
+ end
+
+ it 'redirects' do
+ Setting.open_deletion = false
+ delete :destroy
+ expect(response).to redirect_to root_path
+ end
+ end
end
end