JS-Tech/resj

View on GitHub
app/controllers/users_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class UsersController < ApplicationController
  layout "admin"
  
  require_login only: [:edit, :update, :profile, :destroy]
  before_action :require_loggout, only: [:new, :create]

  def new
    @user = User.new
  end

  def create
    @user = User.new(user_params)
        if @user.save
      UserMailer.confirmation(@user).deliver_now
            redirect_to root_path, success: "Ton compte Réseau Jeunesse a été créé !"
        else
            render 'new'
        end
  end

  def edit
    @user = current_user
  end

  def update
    @user = current_user
        if @user.update_with_password(params[:user][:current_password], user_params)
            sign_in(@user)
            redirect_to profile_path, success: "Tes informations ont été mises à jour"
        else
            render "edit"
        end
  end

  def destroy
    @user = current_user
    @user.destroy
    redirect_to root_path, success: "Ton compte a été supprimé"
  end

  def profile
    @user = current_user
    @orator = @user.orator
    @cards = @user.cards
  end

  def confirmation
        if @user = User.find_by_remember_token(params[:token])
            @user.update_attribute(:confirmed, true)
            sign_in(@user)
            redirect_to profile_path, success: "Ton compte est validé. Tu es maintenant connecté !"
        else
            redirect_to root_path, error: "Le lien est invalide."
        end
    end

  def resend_confirmation
        if @user = User.find_by_uuid(params[:id])
      # re-sends confirmation email
      UserMailer.confirmation(@user).deliver_now
      redirect_to root_path, success: "Un nouvel email a été envoyé"
    else
      redirect_to root_path, error: "Le lien est invalide."
    end
    end

  private

  def user_params
    params.require(:user).permit(:firstname, :lastname, :email, :password, :password_confirmation)
  end

end