|
|
|
module UserHelper
|
|
|
|
def aliased_user_edit(user, current_user)
|
|
|
|
current_user == user ? edit_account_path : edit_user_path(user)
|
|
|
|
end
|
|
|
|
|
|
|
|
def perspective(user, current_user)
|
|
|
|
current_user == user ? "Are you" : "Is this person"
|
|
|
|
end
|
|
|
|
|
|
|
|
def can_edit_org?(current_user)
|
|
|
|
current_user.data_coordinator? || current_user.support?
|
|
|
|
end
|
|
|
|
|
|
|
|
def delete_user_link(user)
|
|
|
|
govuk_button_link_to "Delete this user", delete_confirmation_user_path(user), warning: true
|
|
|
|
end
|
|
|
|
|
|
|
|
def organisation_change_warning(user, new_organisation)
|
|
|
|
logs_count = user.assigned_to_lettings_logs.count + user.assigned_to_sales_logs.count
|
|
|
|
logs_count_text = logs_count == 1 ? "is #{logs_count} log" : "are #{logs_count} logs"
|
|
|
|
|
|
|
|
"You’re moving #{user.name} from #{user.organisation.name} to #{new_organisation.name}. There #{logs_count_text} assigned to them."
|
|
|
|
end
|
|
|
|
|
|
|
|
def organisation_change_confirmation_warning(user, new_organisation, log_reassignment)
|
|
|
|
log_reassignment_text = "There are no logs assigned to them."
|
|
|
|
|
|
|
|
logs_count = user.assigned_to_lettings_logs.count + user.assigned_to_sales_logs.count
|
|
|
|
if logs_count.positive?
|
|
|
|
case log_reassignment
|
|
|
|
when "reassign_all"
|
|
|
|
log_reassignment_text = "The stock owner and managing agent on their logs will change to #{new_organisation.name}."
|
|
|
|
when "reassign_stock_owner"
|
|
|
|
log_reassignment_text = "The stock owner on their logs will change to #{new_organisation.name}."
|
|
|
|
when "reassign_managing_agent"
|
|
|
|
log_reassignment_text = "The managing agent on their logs will change to #{new_organisation.name}."
|
|
|
|
when "unassign"
|
|
|
|
log_reassignment_text = "Their logs will be unassigned."
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
"You’re moving #{user.name} from #{user.organisation.name} to #{new_organisation.name}. #{log_reassignment_text}"
|
|
|
|
end
|
|
|
|
|
|
|
|
def remove_attributes_from_error_messages(user)
|
|
|
|
modified_errors = []
|
|
|
|
|
|
|
|
user.errors.each do |error|
|
|
|
|
cleaned_message = error.type.gsub(error.attribute.to_s.humanize, "").strip
|
|
|
|
modified_errors << [error.attribute, cleaned_message]
|
|
|
|
end
|
|
|
|
|
|
|
|
user.errors.clear
|
|
|
|
|
|
|
|
modified_errors.each do |attribute, message|
|
|
|
|
user.errors.add(attribute, message)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def display_pending_email_change_banner?(user)
|
|
|
|
user.unconfirmed_email.present? && user.email != user.unconfirmed_email
|
|
|
|
end
|
|
|
|
|
|
|
|
def pending_email_change_title_text(current_user, user)
|
|
|
|
if current_user == user
|
|
|
|
"You have requested to change your email address to #{user.unconfirmed_email}."
|
|
|
|
else
|
|
|
|
"There has been a request to change this user’s email address to #{user.unconfirmed_email}."
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def pending_email_change_banner_text(current_user)
|
|
|
|
text = "A confirmation link has been sent to the new email address. The current email will continue to work until the change is confirmed."
|
|
|
|
text += " Deactivating this user will cancel the email change request." if current_user.support? || current_user.data_coordinator?
|
|
|
|
|
|
|
|
text
|
|
|
|
end
|
|
|
|
end
|