72 lines
2.3 KiB
Ruby
72 lines
2.3 KiB
Ruby
module Manager
|
|
class UsersController < Manager::ApplicationController
|
|
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_deleted?
|
|
fail "Impossible de supprimer cet utilisateur. Il a des dossiers en instruction ou il est administrateur."
|
|
end
|
|
user.delete_and_keep_track_dossiers(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
|
|
|
|
def emails
|
|
@user = User.find(params[:id])
|
|
|
|
transactionnal_api = ::SibApiV3Sdk::TransactionalEmailsApi.new
|
|
|
|
@transactionnal_emails = transactionnal_api.get_transac_emails_list(email: @user.email)
|
|
@events = transactionnal_api.get_email_event_report(email: @user.email, days: 30)
|
|
|
|
rescue ::SibApiV3Sdk::ApiError => e
|
|
flash.alert = "Impossible de récupérer les emails de cet utilisateur chez Sendinblue : #{e.message}"
|
|
end
|
|
|
|
def unblock_user
|
|
@user = User.find(params[:id])
|
|
|
|
transactionnal_api = ::SibApiV3Sdk::TransactionalEmailsApi.new
|
|
transactionnal_api.smtp_blocked_contacts_email_delete(@user.email)
|
|
|
|
rescue ::SibApiV3Sdk::ApiError => e
|
|
flash.alert = "Impossible de débloquer cet email auprès de Sendinblue : #{e.message}"
|
|
end
|
|
end
|
|
end
|