Browse Source

FIX educoder platform register bug when mail exists

tags/v1.0.0
Jasder 5 years ago
parent
commit
6d0eb74683
1 changed files with 13 additions and 3 deletions
  1. +13
    -3
      app/controllers/oauth/educoder_controller.rb

+ 13
- 3
app/controllers/oauth/educoder_controller.rb View File

@@ -8,7 +8,7 @@ class Oauth::EducoderController < Oauth::BaseController

::OauthEducoderForm.new({login: login, token: token, callback_url: callback_url}).validate!

open_user= OpenUsers::Educoder.find_by(uid: login)
open_user= OpenUsers::Educoder.find_by(uid: login) || OpenUsers::Educoder.find_by(uid: mail)

if open_user.present? && open_user.user.present? && open_user.user.email_binded?
Rails.logger.info "######## open_user exist and open_user.user exsit and email is binded ok"
@@ -17,10 +17,20 @@ class Oauth::EducoderController < Oauth::BaseController
redirect_to callback_url
else
Rails.logger.info "######## open user not exits"
user = User.find_by('login = ? or mail = ?', login, mail)
user, uid = nil
login_user = User.find_by(login: login)

if login_user
uid = login
user = login_user
else
mail_user = User.find_by(mail: mail)
uid = mail
user = mail_user
end

if user.is_a?(User)
OpenUsers::Educoder.create!(user: user, uid: login)
OpenUsers::Educoder.create!(user: user, uid: uid)
successful_authentication(user)

redirect_to callback_url


Loading…
Cancel
Save