setting-for-account-deletable (#3852)

pull/3863/head
masarakki 2017-06-19 22:12:31 +09:00 committed by Eugen Rochko
parent 500e28442f
commit ff142eb64d
5 changed files with 28 additions and 3 deletions

View File

@ -3,6 +3,7 @@
class Settings::DeletesController < ApplicationController class Settings::DeletesController < ApplicationController
layout 'admin' layout 'admin'
before_action :check_enabled_deletion
before_action :authenticate_user! before_action :authenticate_user!
def show def show
@ -21,6 +22,10 @@ class Settings::DeletesController < ApplicationController
private private
def check_enabled_deletion
redirect_to root_path unless Setting.open_deletion
end
def delete_params def delete_params
params.require(:form_delete_confirmation).permit(:password) params.require(:form_delete_confirmation).permit(:password)
end end

View File

@ -13,6 +13,10 @@ module ApplicationHelper
Setting.open_registrations Setting.open_registrations
end end
def open_deletion?
Setting.open_deletion
end
def add_rtl_body_class(other_classes) def add_rtl_body_class(other_classes)
other_classes = "#{other_classes} rtl" if [:ar, :fa, :he].include?(I18n.locale) other_classes = "#{other_classes} rtl" if [:ar, :fa, :he].include?(I18n.locale)
other_classes other_classes

View File

@ -12,7 +12,8 @@
.actions .actions
= f.button :button, t('generic.save_changes'), type: :submit = f.button :button, t('generic.save_changes'), type: :submit
%hr/ - if open_deletion?
%hr/
%h6= t('auth.delete_account') %h6= t('auth.delete_account')
%p.muted-hint= t('auth.delete_account_html', path: settings_delete_path) %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)

View File

@ -14,6 +14,7 @@ defaults: &defaults
site_contact_email: '' site_contact_email: ''
open_registrations: true open_registrations: true
closed_registrations_message: '' closed_registrations_message: ''
open_deletion: true
boost_modal: false boost_modal: false
auto_play_gif: true auto_play_gif: true
delete_modal: true delete_modal: true

View File

@ -68,5 +68,19 @@ describe Settings::DeletesController do
expect(response).to redirect_to '/auth/sign_in' expect(response).to redirect_to '/auth/sign_in'
end end
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
end end