Ctrl K
ComunidadGuías…

app/controllers/users_controller.rb

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# frozen_string_literal: true

class UsersController < ApplicationController
  layout "settings"

  before_action :require_admin
  before_action :find_user, only: [ :edit, :update, :destroy ]

  def index
    @users = User.where.not(id: Current.user.id)
  end

  def new
    @user = User.new
  end

  def edit
  end

  def create
    @user = User.create!(user_params)

    respond_to do |format|
      format.html { redirect_to users_path, notice: t("notice.created") }
      format.json { render partial: "users/user", locals: { user: @user }, status: :created }
    end
  end

  def update
    @user.update!(user_params)

    respond_to do |format|
      format.html { redirect_to edit_user_path(@user), notice: t("notice.updated") }
      format.json { render partial: "users/user", locals: { user: @user } }
    end
  end

  def destroy
    # Avoid user delete self
    raise BlackCandy::Forbidden if @user == Current.user

    @user.destroy

    respond_to do |format|
      format.html { redirect_to users_path, notice: t("notice.deleted") }
      format.json { head :no_content }
    end
  end

  private

  def find_user
    @user = User.find(params[:id])
  end

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