diff --git a/app/controllers/ecloud_controller.rb b/app/controllers/ecloud_controller.rb index 89a240c4..969640fc 100644 --- a/app/controllers/ecloud_controller.rb +++ b/app/controllers/ecloud_controller.rb @@ -43,7 +43,7 @@ class EcloudController < ApplicationController CLIENT_ID = '1056' CLIENT_SECRET = '2e84256a-3de4-4713-9e02-10ee88a14592' SERVER_URL = "https://221.176.53.130:44390/services/" - +q ## 签名 diff --git a/app/models/user.rb b/app/models/user.rb index fdb9566a..31c58f26 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1693,31 +1693,37 @@ class User < Principal end def self.create_with_ecoder!(info) - user = User.new - user.admin = false - user.login = "ecoder_" + info["mobile"] + user = User.find_by_phone(info["mobile"]) - user.phone = info["mobile"] + # 如果手机号存在,则直接绑定用户 + # 因为手机号可以取回密码,所以可以视为同一用户 + unless user + user = User.new + user.admin = false + user.login = "ecoder_" + info["mobile"] - unless User.find_by_mail(info["email"]) - user.mail = info["email"] - end - user.nickname = info["username"] + user.phone = info["mobile"] + + unless User.find_by_mail(info["email"]) + user.mail = info["email"] + end + user.nickname = info["username"] - user.activate - user.last_login_on = Time.now + user.activate + user.last_login_on = Time.now - user.ecoder_user_id = info["userid"] + user.ecoder_user_id = info["userid"] - user.save!(:validate => false) + user.save!(:validate => false) - UserStatus.create!(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) + UserStatus.create!(:user_id => user.id, :changsets_count => 0, :watchers_count => 0) - ue = user.user_extensions ||= UserExtensions.new - ue.user_id = user.id - ue.save! + ue = user.user_extensions ||= UserExtensions.new + ue.user_id = user.id + ue.save! + end user end