We were very inconsistent regarding these rules. Personally I prefer no empty lines around blocks, clases, etc... as recommended by the Ruby style guide [1], and they're the default values in rubocop, so those are the settings I'm applying. The exception is the `private` access modifier, since we were leaving empty lines around it most of the time. That's the default rubocop rule as well. Personally I don't have a strong preference about this one. [1] https://rubystyle.guide/#empty-lines-around-bodies
69 lines
1.7 KiB
Ruby
69 lines
1.7 KiB
Ruby
class Management::UsersController < Management::BaseController
|
|
def new
|
|
@user = User.new(user_params)
|
|
end
|
|
|
|
def create
|
|
@user = User.new(user_params)
|
|
|
|
if @user.email.blank?
|
|
user_without_email
|
|
else
|
|
user_with_email
|
|
end
|
|
|
|
@user.terms_of_service = "1"
|
|
@user.residence_verified_at = Time.current
|
|
@user.verified_at = Time.current
|
|
|
|
if @user.save
|
|
render :show
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def erase
|
|
managed_user.erase(t("management.users.erased_by_manager", manager: current_manager["login"])) if current_manager.present?
|
|
destroy_session
|
|
redirect_to management_document_verifications_path, notice: t("management.users.erased_notice")
|
|
end
|
|
|
|
def logout
|
|
destroy_session
|
|
redirect_to management_root_path, notice: t("management.sessions.signed_out_managed_user")
|
|
end
|
|
|
|
private
|
|
|
|
def user_params
|
|
params.require(:user).permit(:document_type, :document_number, :username, :email, :date_of_birth)
|
|
end
|
|
|
|
def destroy_session
|
|
session[:document_type] = nil
|
|
session[:document_number] = nil
|
|
clear_password
|
|
end
|
|
|
|
def user_without_email
|
|
new_password = "aAbcdeEfghiJkmnpqrstuUvwxyz23456789$!".split("").sample(10).join("")
|
|
@user.password = new_password
|
|
@user.password_confirmation = new_password
|
|
|
|
@user.email = nil
|
|
@user.confirmed_at = Time.current
|
|
|
|
@user.newsletter = false
|
|
@user.email_on_proposal_notification = false
|
|
@user.email_digest = false
|
|
@user.email_on_direct_message = false
|
|
@user.email_on_comment = false
|
|
@user.email_on_comment_reply = false
|
|
end
|
|
|
|
def user_with_email
|
|
@user.skip_password_validation = true
|
|
end
|
|
end
|