osem-fcy/app/controllers/admin/users_controller.rb

70 lines
2.3 KiB
Ruby
Raw Normal View History

2014-06-23 19:07:50 +03:00
module Admin
class UsersController < Admin::BaseController
2014-08-12 11:51:59 +03:00
load_and_authorize_resource
def new
@user = User.new
end
2013-01-07 09:04:09 +01:00
2017-01-10 17:07:28 +02:00
def create
@user = User.new(user_params)
@user.skip_confirmation!
if @user.save
redirect_to admin_users_path, notice: 'User successfully created.'
else
flash.now[:error] = "Creating User failed: #{@user.errors.full_messages.join('. ')}."
render :new
end
end
2014-06-23 19:07:50 +03:00
def index
@users = User.all
end
2013-01-07 09:04:09 +01:00
# This action allow admins to manually toggle confirmation state of another user
def toggle_confirmation
if user_params[:to_confirm] == 'true'
@user.confirm
elsif user_params[:to_confirm] == 'false'
@user.confirmed_at = nil
@user.save
end
head :ok
end
2014-06-23 19:07:50 +03:00
def show
# Variable @show_attributes holds the attributes that are visible for the 'show' action
# If you want to change the attributes that are shown in the 'show' action of users
# add/remove the attributes in the following string array
@show_attributes = %w(name email username nickname affiliation biography registered attended roles created_at
2014-06-23 19:07:50 +03:00
updated_at sign_in_count current_sign_in_at last_sign_in_at
current_sign_in_ip last_sign_in_ip)
end
2014-06-23 19:07:50 +03:00
def update
message = ''
if params[:user] && !params[:user][:email].nil?
if (new_email = params[:user][:email]) != @user.email
message = " Confirmation email sent to #{new_email}. The new email needs to be confirmed before it can be used."
end
end
2015-10-28 18:05:15 +02:00
if @user.update_attributes(user_params)
redirect_to admin_users_path, notice: "Updated #{@user.name} (#{@user.email})!" + message
else
redirect_to admin_users_path, error: "Could not update #{@user.name} (#{@user.email}). #{@user.errors.full_messages.join('. ')}."
end
2014-06-23 19:07:50 +03:00
end
def edit; end
2015-10-28 18:05:15 +02:00
private
def user_params
2017-01-10 17:07:28 +02:00
params.require(:user).permit(:email, :name, :email_public, :biography, :nickname, :affiliation, :is_admin,
:username, :login, :is_disabled, :tshirt, :mobile, :volunteer_experience,
:languages, :to_confirm, :password, role_ids: [])
2015-10-28 18:05:15 +02:00
end
2014-06-23 19:07:50 +03:00
end
end