mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class UserPasswordsController < Spree::UserPasswordsController
|
|
include CablecarResponses
|
|
|
|
layout 'darkswarm'
|
|
|
|
def create
|
|
return render_unconfirmed_response if user_unconfirmed?
|
|
|
|
self.resource = resource_class.send_reset_password_instructions(raw_params[resource_name])
|
|
|
|
if resource.errors.empty?
|
|
render operations: cable_car.inner_html(
|
|
"#forgot-feedback",
|
|
partial("layouts/alert", locals: { type: "success", message: t(:password_reset_sent) })
|
|
)
|
|
else
|
|
render status: :not_found, operations: cable_car.inner_html(
|
|
"#forgot-feedback",
|
|
partial("layouts/alert", locals: { type: "alert", message: t(:email_not_found) })
|
|
)
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def render_unconfirmed_response
|
|
render status: :unprocessable_entity, operations: cable_car.inner_html(
|
|
"#forgot-feedback",
|
|
partial("layouts/alert",
|
|
locals: { type: "alert", message: t(:email_unconfirmed),
|
|
unconfirmed: true, tab: "forgot" })
|
|
)
|
|
end
|
|
|
|
def user_unconfirmed?
|
|
user = Spree::User.find_by(email: params.dig(:spree_user, :email))
|
|
user && !user.confirmed?
|
|
end
|
|
end
|