diff --git a/app/controllers/oauth/educoder_controller.rb b/app/controllers/oauth/educoder_controller.rb index a803adbb6..90f963e4f 100644 --- a/app/controllers/oauth/educoder_controller.rb +++ b/app/controllers/oauth/educoder_controller.rb @@ -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 diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 7b42c4c72..e6f164b9c 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -66,6 +66,8 @@ class RepositoriesController < ApplicationController end def create_file + content_params = content_params.merge(committer: {email: current_user.mail, name: current_user.login}) + interactor = Gitea::CreateFileInteractor.call(current_user.gitea_token, @project.owner.login, content_params) if interactor.success? @file = interactor.result diff --git a/app/interactors/gitea/create_file_interactor.rb b/app/interactors/gitea/create_file_interactor.rb index 27a381e73..278d5d857 100644 --- a/app/interactors/gitea/create_file_interactor.rb +++ b/app/interactors/gitea/create_file_interactor.rb @@ -57,6 +57,7 @@ module Gitea file_params = file_params.merge(new_branch: @params[:new_branch]) unless @params[:new_branch].blank? file_params = file_params.merge(content: Base64.encode64(@params[:content])) file_params = file_params.merge(message: @params[:message]) unless @params[:message].blank? + file_params = file_params.merge(committer: @params[:committer]) file_params end end