Merge branch 'dev_trustie' of http://git.trustie.net/jasder/forgeplus into dev_trustie
This commit is contained in:
commit
701b56ea90
|
@ -11,6 +11,7 @@ module LoginHelper
|
||||||
|
|
||||||
def set_autologin_cookie(user)
|
def set_autologin_cookie(user)
|
||||||
token = Token.get_or_create_permanent_login_token(user, "autologin")
|
token = Token.get_or_create_permanent_login_token(user, "autologin")
|
||||||
|
Rails.logger.info "###### def set_autologin_cookie and get_or_create_permanent_login_token result: #{token&.value}"
|
||||||
cookie_options = {
|
cookie_options = {
|
||||||
:value => token.value,
|
:value => token.value,
|
||||||
:expires => 1.month.from_now,
|
:expires => 1.month.from_now,
|
||||||
|
@ -21,9 +22,11 @@ module LoginHelper
|
||||||
if edu_setting('cookie_domain').present?
|
if edu_setting('cookie_domain').present?
|
||||||
cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain'))
|
cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain'))
|
||||||
end
|
end
|
||||||
unless cookies[autologin_cookie_name].present?
|
# unless cookies[autologin_cookie_name].present?
|
||||||
cookies[autologin_cookie_name] = cookie_options
|
# cookies[autologin_cookie_name] = cookie_options
|
||||||
end
|
# end
|
||||||
|
cookies[autologin_cookie_name] = cookie_options
|
||||||
|
|
||||||
# for action cable
|
# for action cable
|
||||||
cookies.signed[:user_id] ||= user.id
|
cookies.signed[:user_id] ||= user.id
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ class Oauth::EducoderController < Oauth::BaseController
|
||||||
def bind
|
def bind
|
||||||
begin
|
begin
|
||||||
login = params[:login]
|
login = params[:login]
|
||||||
|
mail = params[:mail] || nil
|
||||||
callback_url = params[:callback_url]
|
callback_url = params[:callback_url]
|
||||||
token = params[:token]
|
token = params[:token]
|
||||||
|
|
||||||
|
@ -10,26 +11,21 @@ class Oauth::EducoderController < Oauth::BaseController
|
||||||
open_user= OpenUsers::Educoder.find_by(uid: login)
|
open_user= OpenUsers::Educoder.find_by(uid: login)
|
||||||
|
|
||||||
if open_user.present? && open_user.user.present? && open_user.user.email_binded?
|
if open_user.present? && open_user.user.present? && open_user.user.email_binded?
|
||||||
if current_user != open_user.user
|
Rails.logger.info "######## open_user exist and open_user.user exsit and email is binded ok"
|
||||||
logout_user
|
successful_authentication(open_user.user)
|
||||||
successful_authentication(open_user.user)
|
|
||||||
end
|
|
||||||
redirect_to callback_url
|
redirect_to callback_url
|
||||||
else
|
else
|
||||||
if current_user.blank? || !current_user.logged?
|
Rails.logger.info "######## open user not exits"
|
||||||
user = User.find_by(login: login)
|
user = User.find_by('login = ? or mail = ?', login, mail)
|
||||||
if user
|
|
||||||
successful_authentication(user)
|
if user.is_a?(User)
|
||||||
OpenUsers::Educoder.create!(user: user, uid: user.login)
|
OpenUsers::Educoder.create!(user: user, uid: login)
|
||||||
|
successful_authentication(user)
|
||||||
|
|
||||||
redirect_to callback_url
|
|
||||||
else
|
|
||||||
redirect_to oauth_register_path(login: login, callback_url: callback_url)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
# forge平台已登录
|
|
||||||
OpenUsers::Educoder.create!(user: current_user, uid: login)
|
|
||||||
redirect_to callback_url
|
redirect_to callback_url
|
||||||
|
else
|
||||||
|
redirect_to oauth_register_path(login: login, callback_url: callback_url)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue WechatOauth::Error => ex
|
rescue WechatOauth::Error => ex
|
||||||
|
|
|
@ -65,22 +65,22 @@ class OauthController < ApplicationController
|
||||||
platform = params[:plathform] || 'educoder'
|
platform = params[:plathform] || 'educoder'
|
||||||
|
|
||||||
if User.where(mail: email).exists?
|
if User.where(mail: email).exists?
|
||||||
render_error("该邮箱已使用过.") and return
|
render json: { email_exist: '该邮箱已使用过' }
|
||||||
end
|
|
||||||
|
|
||||||
result = autologin_register(login, email, password, platform)
|
|
||||||
logger.info "[Oauth educoer] =====#{result}"
|
|
||||||
if result[:message].blank?
|
|
||||||
logger.info "[Oauth educoer] ====auto_register success"
|
|
||||||
user = User.find result[:user][:id]
|
|
||||||
successful_authentication(user)
|
|
||||||
OpenUsers::Educoder.create!(user: user, uid: user.login)
|
|
||||||
|
|
||||||
render_ok({callback_url: callback_url})
|
|
||||||
# redirect_to callback_url
|
|
||||||
else
|
else
|
||||||
logger.info "[Oauth educoer] ====auto_register failed."
|
result = autologin_register(login, email, password, platform)
|
||||||
render :action => "auto_register"
|
logger.info "[Oauth educoer] =====#{result}"
|
||||||
|
if result[:message].blank?
|
||||||
|
logger.info "[Oauth educoer] ====auto_register success"
|
||||||
|
user = User.find result[:user][:id]
|
||||||
|
successful_authentication(user)
|
||||||
|
OpenUsers::Educoder.create!(user: user, uid: user.login)
|
||||||
|
|
||||||
|
render json: { callback_url: callback_url }
|
||||||
|
# redirect_to callback_url
|
||||||
|
else
|
||||||
|
logger.info "[Oauth educoer] ====auto_register failed."
|
||||||
|
render :action => "auto_register"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -149,8 +149,10 @@ class UsersController < ApplicationController
|
||||||
def trustie_related_projects
|
def trustie_related_projects
|
||||||
projects = Project.includes(:owner, :members, :project_score).where(id: params[:ids]).order("updated_on desc")
|
projects = Project.includes(:owner, :members, :project_score).where(id: params[:ids]).order("updated_on desc")
|
||||||
projects_json = []
|
projects_json = []
|
||||||
|
domain_url = EduSetting.get('host_name') + '/projects'
|
||||||
if projects.present?
|
if projects.present?
|
||||||
projects.each do |p|
|
projects.each do |p|
|
||||||
|
project_url = "/#{p.owner.login}/#{p.identifier}"
|
||||||
pj = {
|
pj = {
|
||||||
id: p.id,
|
id: p.id,
|
||||||
name: p.name,
|
name: p.name,
|
||||||
|
@ -165,6 +167,10 @@ class UsersController < ApplicationController
|
||||||
members_count: p&.members.size,
|
members_count: p&.members.size,
|
||||||
issues_count: p.issues_count - p.pull_requests_count,
|
issues_count: p.issues_count - p.pull_requests_count,
|
||||||
commits_count: p&.project_score&.changeset_num.to_i,
|
commits_count: p&.project_score&.changeset_num.to_i,
|
||||||
|
http_url: domain_url + project_url,
|
||||||
|
http_collaborator_url: domain_url + project_url + "/setting/collaborator",
|
||||||
|
http_issues_url: domain_url + project_url + "/issues",
|
||||||
|
http_commits_url: domain_url + project_url + "/commits",
|
||||||
project_score: p&.project_score.present? ? p&.project_score&.as_json(:except=>[:created_at, :updated_at]).merge!(commit_time: format_time(p&.project_score&.commit_time)) : {}
|
project_score: p&.project_score.present? ? p&.project_score&.as_json(:except=>[:created_at, :updated_at]).merge!(commit_time: format_time(p&.project_score&.commit_time)) : {}
|
||||||
}
|
}
|
||||||
projects_json.push(pj)
|
projects_json.push(pj)
|
||||||
|
@ -177,7 +183,7 @@ class UsersController < ApplicationController
|
||||||
def trustie_projects
|
def trustie_projects
|
||||||
user_id = User.select(:id, :login).where(login: params[:login])&.first&.id
|
user_id = User.select(:id, :login).where(login: params[:login])&.first&.id
|
||||||
projects = Project.visible
|
projects = Project.visible
|
||||||
|
|
||||||
projects = projects.joins(:members).where(members: { user_id: user_id })
|
projects = projects.joins(:members).where(members: { user_id: user_id })
|
||||||
|
|
||||||
search = params[:search].to_s.strip
|
search = params[:search].to_s.strip
|
||||||
|
|
|
@ -11,16 +11,10 @@ class OauthEducoderForm
|
||||||
validate :check_auth!
|
validate :check_auth!
|
||||||
|
|
||||||
def check_auth!
|
def check_auth!
|
||||||
Rails.logger.info "====login: #{login} ====token: #{token} ==== callback_url: #{callback_url}"
|
|
||||||
secret = OauthEducoder.config[:access_key_secret]
|
secret = OauthEducoder.config[:access_key_secret]
|
||||||
Rails.logger.info "==== secret: #{secret}"
|
|
||||||
before_raw_pay_load = Digest::SHA1.hexdigest("#{login}#{secret}#{Time.now.to_i/60-1}")
|
before_raw_pay_load = Digest::SHA1.hexdigest("#{login}#{secret}#{Time.now.to_i/60-1}")
|
||||||
now_raw_pay_load = Digest::SHA1.hexdigest("#{login}#{secret}#{Time.now.to_i/60}")
|
now_raw_pay_load = Digest::SHA1.hexdigest("#{login}#{secret}#{Time.now.to_i/60}")
|
||||||
|
|
||||||
Rails.logger.info "==== before_raw_pay_load: #{before_raw_pay_load}"
|
|
||||||
Rails.logger.info "==== now_raw_pay_load: #{now_raw_pay_load}"
|
|
||||||
Rails.logger.info "==== token: #{token}"
|
|
||||||
|
|
||||||
if token != now_raw_pay_load && token != before_raw_pay_load
|
if token != now_raw_pay_load && token != before_raw_pay_load
|
||||||
raise '你的请求无效值无效.'
|
raise '你的请求无效值无效.'
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,8 +27,10 @@ class Token < ActiveRecord::Base
|
||||||
|
|
||||||
def self.get_or_create_permanent_login_token(user, type)
|
def self.get_or_create_permanent_login_token(user, type)
|
||||||
token = Token.get_token_from_user(user, type)
|
token = Token.get_token_from_user(user, type)
|
||||||
|
Rails.logger.info "###### Token.get_token_from_user result: #{token&.value}"
|
||||||
unless token
|
unless token
|
||||||
token = Token.create(:user => user, :action => type)
|
token = Token.create(:user => user, :action => type)
|
||||||
|
Rails.logger.info "###### Token.get_token_from_user is nul and agine create token: #{token&.value}"
|
||||||
else
|
else
|
||||||
token.update_attribute(:created_on, Time.now)
|
token.update_attribute(:created_on, Time.now)
|
||||||
end
|
end
|
||||||
|
@ -37,8 +39,10 @@ class Token < ActiveRecord::Base
|
||||||
|
|
||||||
def self.get_token_from_user(user, action)
|
def self.get_token_from_user(user, action)
|
||||||
token = Token.where(:action => action, :user_id => user).first
|
token = Token.where(:action => action, :user_id => user).first
|
||||||
|
Rails.logger.info "###### self.get_token_from_user query result: #{token&.value}"
|
||||||
unless token
|
unless token
|
||||||
token = Token.create!(user_id: user.id, action: action)
|
token = Token.create!(user_id: user.id, action: action)
|
||||||
|
Rails.logger.info "###### self.get_token_from_user query is nil and create result: #{token&.value}"
|
||||||
end
|
end
|
||||||
token
|
token
|
||||||
end
|
end
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
if (data) {
|
if (data) {
|
||||||
if(data.message){
|
if(data.email_exist){
|
||||||
$(".emailCheck span").html("该邮箱已存在.");
|
$(".emailCheck span").html("该邮箱已存在.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
json.extract! @project, :id, :name
|
json.extract! @project, :id, :name, :identifier
|
||||||
|
|
Loading…
Reference in New Issue