allows managers to create users without email hides email preferences from account page for email-less users prevents email delivery to users with no email adds spec for user creation from management adds specs for user's email requirement adds spec for no deliveries if no email
70 lines
1.7 KiB
Ruby
70 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 then
|
|
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_url, 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
|
|
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
|