adds managers option to delete a level 2 account

This commit is contained in:
Juanjo Bazán
2016-04-08 11:03:30 +02:00
parent 6f5a23bb4f
commit ce477273da
6 changed files with 59 additions and 2 deletions

View File

@@ -18,6 +18,12 @@ class Management::UsersController < Management::BaseController
end end
end end
def erase
managed_user.erase(t("management.users.erased_by_manager", manager: current_manager['login'])) if current_manager.present?
destroy_session
redirect_to management_document_verifications_path, notice: t("management.users.erased_notice")
end
def logout def logout
destroy_session destroy_session
redirect_to management_root_url, notice: t("management.sessions.signed_out_managed_user") redirect_to management_root_url, notice: t("management.sessions.signed_out_managed_user")

View File

@@ -13,3 +13,14 @@
<%= f.hidden_field :document_number %> <%= f.hidden_field :document_number %>
<%= f.submit t("management.document_verifications.verify"), class: "button success" %> <%= f.submit t("management.document_verifications.verify"), class: "button success" %>
<% end %> <% end %>
<%= link_to t("management.document_verifications.erase_account_link"), "#", class: "delete js-toggle-link", data: { "toggle-selector" => "#erase-account-form" } %>
<div id="erase-account-form" style="display:none">
<div class="callout alert medium-6">
<%= t("management.document_verifications.erase_warning") %>
</div>
<%= link_to t("management.document_verifications.erase_submit"), erase_management_users_path, method: :delete, class: "button alert", data: { confirm: t("management.document_verifications.erase_account_confirm") } %>
</div>

View File

@@ -24,6 +24,10 @@ en:
title: User management title: User management
under_age: You must be over 16 to verify your account. under_age: You must be over 16 to verify your account.
verify: Verify verify: Verify
erase_account_link: Delete user
erase_account_confirm: Are you sure you want to erase the account? This action can not be undone
erase_warning: This action can not be undone. Please make sure you want to erase this account.
erase_submit: Delete account
email_label: Email email_label: Email
email_verifications: email_verifications:
already_verified: This user account is already verified. already_verified: This user account is already verified.
@@ -84,3 +88,5 @@ en:
create_user_info: 'We will create an account with the following data:' create_user_info: 'We will create an account with the following data:'
create_user_submit: Create user create_user_submit: Create user
create_user_success_html: We have sent an email to the email address <b>%{email}</b> in order to verify that it belongs to this user. It contains a link they have to click. Then they will have to set their access password before being able to log in to the website create_user_success_html: We have sent an email to the email address <b>%{email}</b> in order to verify that it belongs to this user. It contains a link they have to click. Then they will have to set their access password before being able to log in to the website
erased_notice: User account deleted.
erased_by_manager: "Deleted by manager: %{manager}"

View File

@@ -24,6 +24,10 @@ es:
title: Gestión de usuarios title: Gestión de usuarios
under_age: Debes ser mayor de 16 años para verificar tu cuenta. under_age: Debes ser mayor de 16 años para verificar tu cuenta.
verify: Verificar usuario verify: Verificar usuario
erase_account_link: Borrar cuenta
erase_account_confirm: ¿Seguro que quieres borrar a este usuario? Esta acción no se puede deshacer
erase_warning: Esta acción no se puede deshacer. Por favor asegurese de que quiere eliminar esta cuenta.
erase_submit: Borrar cuenta
email_label: Email email_label: Email
email_verifications: email_verifications:
already_verified: Esta cuenta de usuario ya está verificada. already_verified: Esta cuenta de usuario ya está verificada.
@@ -84,3 +88,5 @@ es:
create_user_info: 'Procedemos a crear un usuario con la siguiente información:' create_user_info: 'Procedemos a crear un usuario con la siguiente información:'
create_user_submit: Crear usuario create_user_submit: Crear usuario
create_user_success_html: Hemos enviado un correo electrónico a <b>%{email}</b> para verificar que es suya. El correo enviado contiene un link que el usuario deberá pulsar. Entonces podrá seleccionar una clave de acceso, y entrar en la web de participación. create_user_success_html: Hemos enviado un correo electrónico a <b>%{email}</b> para verificar que es suya. El correo enviado contiene un link que el usuario deberá pulsar. Entonces podrá seleccionar una clave de acceso, y entrar en la web de participación.
erased_notice: Cuenta de usuario borrada.
erased_by_manager: "Borrada por el manager: %{manager}"

View File

@@ -214,7 +214,10 @@ Rails.application.routes.draw do
resources :email_verifications, only: [:new, :create] resources :email_verifications, only: [:new, :create]
resources :users, only: [:new, :create] do resources :users, only: [:new, :create] do
delete :logout, on: :collection collection do
delete :logout
delete :erase
end
end end
get 'sign_in', to: 'sessions#create' get 'sign_in', to: 'sessions#create'

View File

@@ -2,7 +2,7 @@ require 'rails_helper'
feature 'users' do feature 'users' do
scenario 'Creating a level 3 user from scratch' do scenario 'Create a level 3 user from scratch' do
login_as_manager login_as_manager
@@ -42,4 +42,29 @@ feature 'users' do
expect(page).to have_content "Your account has been confirmed." expect(page).to have_content "Your account has been confirmed."
end end
scenario 'Delete a level 2 user account from document verification page', :js do
level_2_user = create(:user, :level_two, document_number: 13579)
login_as_manager
visit management_document_verifications_path
fill_in 'document_verification_document_number', with: '13579'
click_button 'Check'
expect(page).to_not have_content "This user account is already verified."
expect(page).to have_content "This user can participate in the website with the following permissions"
click_link "Delete user"
click_link "Delete account"
expect(page).to have_content "User account deleted."
expect(level_2_user.reload.erase_reason).to eq "Deleted by manager: JJB042"
visit management_document_verifications_path
fill_in 'document_verification_document_number', with: '13579'
click_button 'Check'
expect(page).to have_content "no user account associated to it"
end
end end