FIX: new sign-ups via google are added to groups
This fix ensures that users that are signing up via google oauth are automatically added to any groups. A similar fix will probably need to be added to other oauth providers.
This commit is contained in:
parent
a509146ea5
commit
fcfc895167
|
@ -31,6 +31,10 @@ class Auth::GoogleOAuth2Authenticator < Auth::Authenticator
|
||||||
def after_create_account(user, auth)
|
def after_create_account(user, auth)
|
||||||
data = auth[:extra_data]
|
data = auth[:extra_data]
|
||||||
GoogleUserInfo.create({user_id: user.id}.merge(data))
|
GoogleUserInfo.create({user_id: user.id}.merge(data))
|
||||||
|
if auth[:email_valid].to_s == 'true'
|
||||||
|
EmailToken.confirm(user.email_tokens.first.token)
|
||||||
|
user.set_automatic_groups
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def register_middleware(omniauth)
|
def register_middleware(omniauth)
|
||||||
|
|
|
@ -82,4 +82,19 @@ describe Auth::GoogleOAuth2Authenticator do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'after_create_account' do
|
||||||
|
it 'confirms email' do
|
||||||
|
authenticator = Auth::GoogleOAuth2Authenticator.new
|
||||||
|
user = Fabricate(:user)
|
||||||
|
session = {
|
||||||
|
:email_valid => "true",
|
||||||
|
:extra_data => {
|
||||||
|
:google_user_id => 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
authenticator.after_create_account(user, session)
|
||||||
|
expect(user.email_confirmed?).to eq(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue