You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

91 lines
1.8 KiB

class Admin::UsersController < Admin::AdminController
before_action :set_user, only: %i[ edit update destroy ]
helper_method :sorting_technique
# GET /users
def index
@users = User.public_send(sorting_technique, params[:reverse].present?)
.simple_search(params[:q])
.page(params[:page] || 1)
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
# POST /users or /users.json
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to edit_admin_user_url(@user), notice: t(:'users.created') }
else
format.html { render :new, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /users/1 or /users/1.json
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to edit_admin_user_url(@user), notice: t(:'users.updated') }
else
format.html { render :edit, status: :unprocessable_entity }
end
end
end
# DELETE /users/1 or /users/1.json
def destroy
@user.destroy!
respond_to do |format|
format.html { redirect_to url_for(action: :index), notice: t(:'users.destroyed') }
end
end
private
def sorting_technique
params[:sort].presence_in(%w(by_name by_email by_last_modified)) || :by_name
end
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Only allow a list of trusted parameters through.
def user_params
params.require(:user).permit(
:enabled_at,
:title,
:role,
:phone,
:firstname,
:lastname,
:email,
:password,
:password_confirmation
)
end
end