mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 06:28:11 +08:00
FIX: ensure staged accounts are always inactive
If for any reason active is stored in the user model, clear it out prior to creating an account
This commit is contained in:
parent
3190c13c22
commit
a393d3bcbb
|
@ -321,6 +321,7 @@ class UsersController < ApplicationController
|
|||
if user = User.where(staged: true).with_email(params[:email].strip.downcase).first
|
||||
user_params.each { |k, v| user.send("#{k}=", v) }
|
||||
user.staged = false
|
||||
user.active = false
|
||||
else
|
||||
user = User.new(user_params)
|
||||
end
|
||||
|
|
|
@ -1035,7 +1035,7 @@ describe UsersController do
|
|||
end
|
||||
|
||||
context "when taking over a staged account" do
|
||||
let!(:staged) { Fabricate(:staged, email: "staged@account.com") }
|
||||
let!(:staged) { Fabricate(:staged, email: "staged@account.com", active: true) }
|
||||
|
||||
it "succeeds" do
|
||||
post :create, params: {
|
||||
|
@ -1045,9 +1045,10 @@ describe UsersController do
|
|||
result = ::JSON.parse(response.body)
|
||||
expect(result["success"]).to eq(true)
|
||||
|
||||
active_user = User.find_by_email(staged.email)
|
||||
expect(active_user.staged).to eq(false)
|
||||
expect(active_user.registration_ip_address).to be_present
|
||||
created_user = User.find_by_email(staged.email)
|
||||
expect(created_user.staged).to eq(false)
|
||||
expect(created_user.active).to eq(false)
|
||||
expect(created_user.registration_ip_address).to be_present
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user