You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.9 KiB
78 lines
2.9 KiB
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
|
|
|