manager: add confirmation email actions for the User

- Allow to re-send the confirmation email
- Allow to confirm the email address manually
This commit is contained in:
Pierre de La Morinerie 2018-07-17 12:10:56 +02:00
parent 5c9676678d
commit 7ca476fc61
3 changed files with 75 additions and 1 deletions

View file

@ -1,4 +1,17 @@
module Manager
class UsersController < Manager::ApplicationController
def resend_confirmation_instructions
user = User.find(params[:id])
user.resend_confirmation_instructions
flash[:notice] = "Le message de confirmation de ladresse email a été renvoyé."
redirect_to manager_user_path(user)
end
def confirm
user = User.find(params[:id])
user.confirm
flash[:notice] = "Ladresse email de lutilisateur a été marquée comme confirmée."
redirect_to manager_user_path(user)
end
end
end

View file

@ -0,0 +1,57 @@
<%#
# Show
This view is the template for the show page.
It renders the attributes of a resource,
as well as a link to its edit page.
## Local variables:
- `page`:
An instance of [Administrate::Page::Show][1].
Contains methods for accessing the resource to be displayed on the page,
as well as helpers for describing how each attribute of the resource
should be displayed.
[1]: http://www.rubydoc.info/gems/administrate/Administrate/Page/Show
%>
<% content_for(:title) { t("administrate.actions.show_resource", name: page.page_title) } %>
<% user = page.resource %>
<header class="main-content__header" role="banner">
<h1 class="main-content__page-title">
<%= content_for(:title) %>
</h1>
<div>
<%= link_to(
t("administrate.actions.edit_resource", name: page.page_title),
[:edit, namespace, page.resource],
class: "button",
) if valid_action?(:edit) && show_action?(:edit, page.resource) %>
</div>
<div>
<% if !user.confirmed? %>
<%= link_to('Renvoyer lemail de confirmation', [:resend_confirmation_instructions, namespace, page.resource], method: :post, class: 'button') %>
<%= link_to('Confirmer lemail', confirm_manager_user_path(user), method: :post, class: 'button') %>
<% end %>
<div>
</header>
<section class="main-content__body">
<dl>
<% page.attributes.each do |attribute| %>
<dt class="attribute-label" id="<%= attribute.name %>">
<%= t(
"helpers.label.#{resource_name}.#{attribute.name}",
default: attribute.name.titleize,
) %>
</dt>
<dd class="attribute-data attribute-data--<%=attribute.html_class%>"
><%= render_field attribute %></dd>
<% end %>
</dl>
</section>

View file

@ -15,7 +15,11 @@ Rails.application.routes.draw do
put 'enable_feature', on: :member
end
resources :users, only: [:index, :show]
resources :users, only: [:index, :show] do
post 'resend_confirmation_instructions', on: :member
post 'confirm', on: :member
end
resources :gestionnaires, only: [:index, :show] do
post 'reinvite', on: :member
end