demarches-normaliennes/app/controllers/manager/users_controller.rb
2020-09-17 11:16:56 +02:00

55 lines
1.6 KiB
Ruby

module Manager
class UsersController < Manager::ApplicationController
def scoped_resource
# Don't display discarded users
User.kept
end
def update
user = User.find(params[:id])
new_email = params[:user][:email]
user.skip_reconfirmation!
user.update(email: new_email)
if (user.valid?)
flash[:notice] = "L'email a été modifié en « #{new_email} » sans notification ni validation par email."
else
flash[:error] = "« #{new_email} » n'est pas une adresse valide."
end
redirect_to edit_manager_user_path(user)
end
def resend_confirmation_instructions
user = User.find(params[:id])
user.resend_confirmation_instructions
flash[:notice] = "L'email d'activation de votre compte a été renvoyé."
redirect_to manager_user_path(user)
end
def enable_feature
user = User.find(params[:id])
params[:features].each do |key, enable|
if enable
Flipper.enable_actor(key.to_sym, user)
else
Flipper.disable_actor(key.to_sym, user)
end
end
head :ok
end
def delete
user = User.find(params[:id])
if !user.can_be_discarded?
fail "Impossible de supprimer cet utilisateur. Il est instructeur ou administrateur."
end
user.delete_or_discard!(current_administration)
logger.info("L'utilisateur #{user.id} est supprimé par #{current_administration.id}")
flash[:notice] = "L'utilisateur #{user.id} est supprimé"
redirect_to manager_users_path
end
end
end