Skip to content

Commit

Permalink
Send reset instructions on external event registration
Browse files Browse the repository at this point in the history
  • Loading branch information
TheWalkingLeek committed Dec 17, 2024
1 parent 1da60b5 commit 44b9e5d
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 0 deletions.
14 changes: 14 additions & 0 deletions app/controllers/sac_cas/event/register_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

# Copyright (c) 2024, Schweizer Alpen-Club. This file is part of
# hitobito_sac_cas and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_sac_cas

module SacCas::Event::RegisterController
def save_entry
if super
person.send_reset_password_instructions
end
end
end
1 change: 1 addition & 0 deletions lib/hitobito_sac_cas/wagon.rb
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ class Wagon < Rails::Engine
Event::KindsController.prepend SacCas::Event::KindsController
Event::KindCategoriesController.prepend SacCas::Event::KindCategoriesController
Event::ParticipationsController.prepend SacCas::Event::ParticipationsController
Event::RegisterController.prepend SacCas::Event::RegisterController
Event::RolesController.prepend SacCas::Event::RolesController
GroupsController.permitted_attrs << :mitglied_termination_by_section_only
GroupsController.permitted_attrs << {section_offering_ids: []}
Expand Down
55 changes: 55 additions & 0 deletions spec/controllers/event/register_controller_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright (c) 2024, Schweizer Alpen-Club. This file is part of
# hitobito and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito.

require "spec_helper"

describe Event::RegisterController do
include ActiveJob::TestHelper

let(:event) do
events(:top_event).tap do |e|
e.update_column(:external_applications, true)
end
end
let(:group) { event.groups.first }

let(:attrs) {
{
first_name: "Max",
last_name: "Muster",
street: "Musterplatz",
housenumber: "23",
email: "[email protected]",
zip_code: "8000",
town: "Zürich",
country: "CH",
birthday: "01.01.1980",
phone_numbers_attributes: {
"0": {
number: "+41 79 123 45 56",
public: true,
translated_label: "Mobile"
}
}
}.with_indifferent_access
}

context "PUT register" do
context "with valid data" do
it "creates person and sends password reset instructions" do
event.update!(required_contact_attrs: [])

expect(Devise::Mailer).to receive(:reset_password_instructions).and_call_original

expect do
put :register, params: {group_id: group.id, id: event.id, event_participation_contact_data: attrs}
end.to change { Person.count }.by(1)

is_expected.to redirect_to(new_group_event_participation_path(group, event))
expect(flash[:notice]).to include "Deine persönlichen Daten wurden aufgenommen. Bitte ergänze nun noch die Angaben"
end
end
end
end

0 comments on commit 44b9e5d

Please sign in to comment.