FIX 完善通过大赛点击项目链接自动注册关联Educoder平台账号的功能

This commit is contained in:
jasder 2021-05-12 17:01:30 +08:00
parent e5f591e509
commit 4023b8980e
3 changed files with 22 additions and 6 deletions

View File

@ -31,7 +31,7 @@ module RegisterHelper
result
end
def autosync_register_trustie(username, password, email)
def autosync_register_trustie(username, password, email, lastname="")
config = Rails.application.config_for(:configuration).symbolize_keys!
api_host = config[:sync_url]
@ -42,8 +42,9 @@ module RegisterHelper
sync_json = {
"mail": email,
"password": password,
"login": username
}
"login": username,
"lastname": lastname
}.compact
uri = URI.parse(url)
if api_host

View File

@ -61,6 +61,7 @@ class OauthController < ApplicationController
login = params[:login]
email = params[:mail]
password = params[:password]
lastname = params[:lastname]
callback_url = params[:callback_url]
platform = params[:plathform] || 'educoder'
@ -72,7 +73,9 @@ class OauthController < ApplicationController
if result[:message].blank?
logger.info "[Oauth educoer] ====auto_register success"
user = User.find result[:user][:id]
user.update_column(:lastname, params[:lastname])
successful_authentication(user)
autosync_register_trustie(login, password, email, lastname)
OpenUsers::Educoder.create!(user: user, uid: user.login)
render json: { callback_url: callback_url }

View File

@ -5,10 +5,15 @@
<%= form_tag('', method: :post, id: 'oauth_form', class: 'form-inline search-form flex-1', remote: true) do %>
<%= hidden_field_tag 'callback_url', params[:callback_url] %>
<div class="indexInfo">
<span>用户名:</span>
<%= text_field_tag :login, params[:login], placeholder: '请输入用户名', readonly: true, id: 'login' %>
<span>登录名:</span>
<%= text_field_tag :login, params[:login], placeholder: '请输入登录名', readonly: true, id: 'login' %>
<p class="checkInfo loginCheck"><span></span></p>
</div>
<div class="indexInfo">
<span>用户名称:</span>
<%= text_field_tag :lastname, params[:lastname], placeholder: '登录平台后显示的用户名称', readonly: true, id: 'lastname' %>
<p class="checkInfo lastnameCheck"><span></span></p>
</div>
<div class="indexInfo">
<span>邮箱:</span>
<%= text_field_tag :mail, params[:mail], placeholder: '请输入绑定邮箱', maxlength: 40, id: 'email' %>
@ -16,7 +21,7 @@
</div>
<div class="indexInfo">
<span>密码:</span>
<%= password_field_tag :password, '', placeholder: '输入账号密码', id: 'password' %>
<%= password_field_tag :password, '', placeholder: '输入EduCoder账号密码或新的密码', id: 'password' %>
<p class="checkInfo passwordCheck"><span></span></p>
</div>
<div class="indexBtn">
@ -29,6 +34,7 @@
function submitdata(){
var login = $("#login").val();
var email = $("#email").val();
var lastname = $("#lastname").val();
var password = $("#password").val();
if(!login){
@ -37,6 +43,12 @@
}else{
$(".loginCheck span").html("");
}
if(!lastname){
$(".lastnameCheck span").html("请输入用户名称");
return;
}else{
$(".lastnameCheck span").html("");
}
if(!email){
$(".emailCheck span").html("请输入绑定的邮箱");
return;