Add resend confirmation for admin (#7378)
* Add confirmations_controller#resend * Add tests for confirmations_controller#resend * Add translations
This commit is contained in:
		
							parent
							
								
									8c35d163a5
								
							
						
					
					
						commit
						bd10a7e480
					
				
					 35 changed files with 251 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
module Admin
 | 
			
		||||
  class ConfirmationsController < BaseController
 | 
			
		||||
    before_action :set_user
 | 
			
		||||
    before_action :check_confirmation, only: [:resend]
 | 
			
		||||
 | 
			
		||||
    def create
 | 
			
		||||
      authorize @user, :confirm?
 | 
			
		||||
| 
						 | 
				
			
			@ -11,10 +12,28 @@ module Admin
 | 
			
		|||
      redirect_to admin_accounts_path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def resend
 | 
			
		||||
      authorize @user, :confirm?
 | 
			
		||||
 | 
			
		||||
      @user.resend_confirmation_instructions
 | 
			
		||||
 | 
			
		||||
      log_action :confirm, @user
 | 
			
		||||
 | 
			
		||||
      flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success')
 | 
			
		||||
      redirect_to admin_accounts_path
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    private
 | 
			
		||||
 | 
			
		||||
    def set_user
 | 
			
		||||
      @user = Account.find(params[:account_id]).user || raise(ActiveRecord::RecordNotFound)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def check_confirmation
 | 
			
		||||
      if @user.confirmed?
 | 
			
		||||
        flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed')
 | 
			
		||||
        redirect_to admin_accounts_path
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,13 +36,19 @@
 | 
			
		|||
          %th= t('admin.accounts.email')
 | 
			
		||||
          %td
 | 
			
		||||
            = @account.user_email
 | 
			
		||||
            - if @account.user_confirmed?
 | 
			
		||||
              = fa_icon('check')
 | 
			
		||||
            = table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
 | 
			
		||||
        - if @account.user_unconfirmed_email.present?
 | 
			
		||||
          %th= t('admin.accounts.unconfirmed_email')
 | 
			
		||||
          %td
 | 
			
		||||
            = @account.user_unconfirmed_email
 | 
			
		||||
        %tr
 | 
			
		||||
          %th= t('admin.accounts.email_status')
 | 
			
		||||
          %td
 | 
			
		||||
            - if @account.user&.confirmed?
 | 
			
		||||
              = t('admin.accounts.confirmed')
 | 
			
		||||
            - else
 | 
			
		||||
              = t('admin.accounts.confirming')
 | 
			
		||||
              = table_link_to 'refresh', t('admin.accounts.resend_confirmation.send'), resend_admin_account_confirmation_path(@account.id), method: :post if can?(:confirm, @account.user)
 | 
			
		||||
        %tr
 | 
			
		||||
          %th= t('admin.accounts.login_status')
 | 
			
		||||
          %td
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue