Browse Source

setting-for-account-deletable (#3852)

closed-social-glitch-2
masarakki 6 years ago
committed by Eugen Rochko
parent
commit
ff142eb64d
5 changed files with 28 additions and 3 deletions
  1. +5
    -0
      app/controllers/settings/deletes_controller.rb
  2. +4
    -0
      app/helpers/application_helper.rb
  3. +4
    -3
      app/views/auth/registrations/edit.html.haml
  4. +1
    -0
      config/settings.yml
  5. +14
    -0
      spec/controllers/settings/deletes_controller_spec.rb

+ 5
- 0
app/controllers/settings/deletes_controller.rb View File

@ -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

+ 4
- 0
app/helpers/application_helper.rb View File

@ -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

+ 4
- 3
app/views/auth/registrations/edit.html.haml View File

@ -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)

+ 1
- 0
config/settings.yml View File

@ -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

+ 14
- 0
spec/controllers/settings/deletes_controller_spec.rb View File

@ -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

Loading…
Cancel
Save