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)
|
||||
data = auth[:extra_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
|
||||
|
||||
def register_middleware(omniauth)
|
||||
|
|
|
@ -82,4 +82,19 @@ describe Auth::GoogleOAuth2Authenticator do
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue