Commit 6cee467c2475ddb082382416859e21fa7fb850b3
1 parent
b29e7d78
Exists in
theme-brasil-digital-from-staging
and in
7 other branches
api: method to resend activation code
Showing
2 changed files
with
29 additions
and
0 deletions
Show diff stats
lib/noosfero/api/session.rb
... | ... | @@ -128,6 +128,24 @@ module Noosfero |
128 | 128 | end |
129 | 129 | end |
130 | 130 | |
131 | + # Resend activation code. | |
132 | + # | |
133 | + # Parameters: | |
134 | + # value (required) - Email or login | |
135 | + # Example Request: | |
136 | + # POST /resend_activation_code?value=some@mail.com | |
137 | + post "/resend_activation_code" do | |
138 | + requestors = fetch_requestors(params[:value]) | |
139 | + not_found! if requestors.blank? | |
140 | + remote_ip = (request.respond_to?(:remote_ip) && request.remote_ip) || (env && env['REMOTE_ADDR']) | |
141 | + # test_captcha will render_api_error! and exit in case of any problem | |
142 | + # this return is just to improve the clarity of the execution path | |
143 | + return unless test_captcha(remote_ip, params, environment) | |
144 | + requestors.each do |requestor| | |
145 | + requestor.user.resend_activation_code | |
146 | + end | |
147 | + end | |
148 | + | |
131 | 149 | params do |
132 | 150 | requires :code, type: String, desc: _("Forgot password code") |
133 | 151 | end | ... | ... |
test/unit/api/session_test.rb
... | ... | @@ -210,4 +210,15 @@ class SessionTest < ActiveSupport::TestCase |
210 | 210 | assert !json['user']['private_token'].present? |
211 | 211 | end |
212 | 212 | |
213 | + should 'resend activation code for an inactive user' do | |
214 | + user = create_user | |
215 | + params = {:value => user.login} | |
216 | + Delayed::Job.destroy_all | |
217 | + assert_difference 'ActionMailer::Base.deliveries.size' do | |
218 | + post "/api/v1/resend_activation_code?#{params.to_query}" | |
219 | + process_delayed_job_queue | |
220 | + end | |
221 | + assert_equal user.email, ActionMailer::Base.deliveries.last['to'].to_s | |
222 | + end | |
223 | + | |
213 | 224 | end | ... | ... |