注册修改
This commit is contained in:
parent
4214f39bae
commit
2a7e0365b8
|
@ -101,33 +101,22 @@ class AccountController < ApplicationController
|
|||
|
||||
# User self-registration
|
||||
def register
|
||||
# @root_path="/home/pdl/redmine-2.3.2-0/apache2/"
|
||||
#
|
||||
#@cache_identityy = params[:identity]||"" #身份
|
||||
@cache_no = params[:no]||"" #学号
|
||||
@cache_technical_title = params[:technical_title]||"" #教师职称
|
||||
@cache_province = params[:province]||"" #省份
|
||||
@cache_city = params[:city]||"" #城市
|
||||
@cache_enterprise_name = params[:enterprise_name]||"" #企业
|
||||
|
||||
firstname_code = ""
|
||||
lastname_code = ""
|
||||
(redirect_to(home_url); return) unless Setting.self_registration? || session[:auth_source_registration]
|
||||
if request.get?
|
||||
session[:auth_source_registration] = nil
|
||||
@user = User.new(:language => current_language.to_s)
|
||||
else
|
||||
user_params = params[:user] || {}
|
||||
@user = User.new
|
||||
@user.safe_attributes = user_params
|
||||
if params[:identity] == "2" # 2 企业
|
||||
firstname_code = @user.firstname
|
||||
lastname_code = @user.lastname
|
||||
@user.firstname = params[:enterprise_name]
|
||||
@user.lastname = l(:field_enterprise)
|
||||
end
|
||||
@user.admin = false
|
||||
@user.register
|
||||
#@user = User.new
|
||||
#@user.safe_attributes = user_params
|
||||
#if params[:identity] == "2" # 2 企业
|
||||
# firstname_code = @user.firstname
|
||||
# lastname_code = @user.lastname
|
||||
# @user.firstname = params[:enterprise_name]
|
||||
# @user.lastname = l(:field_enterprise)
|
||||
#end
|
||||
#@user.admin = false
|
||||
#@user.register
|
||||
if session[:auth_source_registration]
|
||||
@user.activate
|
||||
@user.login = session[:auth_source_registration][:login]
|
||||
|
@ -139,42 +128,59 @@ class AccountController < ApplicationController
|
|||
redirect_to my_account_path
|
||||
end
|
||||
else
|
||||
@user.login = params[:user][:login]
|
||||
unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank?
|
||||
@user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
|
||||
end
|
||||
|
||||
|
||||
|
||||
case Setting.self_registration
|
||||
us = UsersService.new
|
||||
@user = us.register user_params.merge(:should_confirmation_password => true)
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
register_by_email_activation(@user)
|
||||
#register_by_email_activation(@user)
|
||||
unless @user.new_record?
|
||||
render action: 'email_valid', locals: {:mail => user.mail}
|
||||
end
|
||||
when '3'
|
||||
register_automatically(@user)
|
||||
#register_automatically(@user)
|
||||
unless @user.new_record?
|
||||
self.logged_user = user
|
||||
flash[:notice] = l(:notice_account_activated)
|
||||
redirect_to my_account_url
|
||||
end
|
||||
else
|
||||
register_manually_by_administrator(@user)
|
||||
end
|
||||
|
||||
#added by bai
|
||||
if @user.id != nil
|
||||
ue = @user.user_extensions ||= UserExtensions.new
|
||||
#ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => )
|
||||
ue.identity = params[:identity].to_i
|
||||
ue.technical_title = params[:technical_title]
|
||||
ue.gender = params[:gender].to_i
|
||||
ue.user_id = @user.id
|
||||
ue.student_id = params[:no]
|
||||
ue.location = params[:province] if params[:province] != nil
|
||||
ue.location_city = params[:city] if params[:city] != nil
|
||||
ue.save
|
||||
end
|
||||
#register_manually_by_administrator(@user)
|
||||
unless @user.new_record?
|
||||
account_pending
|
||||
end
|
||||
end
|
||||
# @user.login = params[:user][:login]
|
||||
# unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank?
|
||||
# @user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
|
||||
# end
|
||||
#
|
||||
#
|
||||
#
|
||||
# case Setting.self_registration
|
||||
# when '1'
|
||||
# register_by_email_activation(@user)
|
||||
# when '3'
|
||||
# register_automatically(@user)
|
||||
# else
|
||||
# register_manually_by_administrator(@user)
|
||||
# end
|
||||
#
|
||||
# #added by bai
|
||||
# if @user.id != nil
|
||||
# ue = @user.user_extensions ||= UserExtensions.new
|
||||
# #ue = UserExtensions.create(:identity => params[:identity].to_i,:technical_title => params[:technical_title], :gender => params[:gender].to_i, :user_id => @user.id, :student_id => )
|
||||
# ue.identity = params[:identity].to_i
|
||||
# ue.technical_title = params[:technical_title]
|
||||
# ue.gender = params[:gender].to_i
|
||||
# ue.user_id = @user.id
|
||||
# ue.student_id = params[:no]
|
||||
# ue.location = params[:province] if params[:province] != nil
|
||||
# ue.location_city = params[:city] if params[:city] != nil
|
||||
# ue.save
|
||||
# end
|
||||
|
||||
end
|
||||
end
|
||||
if params[:identity] == "2"
|
||||
@user.firstname = firstname_code
|
||||
@user.lastname = lastname_code
|
||||
end
|
||||
end
|
||||
|
||||
# Token based account activation
|
||||
|
|
|
@ -18,4 +18,45 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
module AccountHelper
|
||||
|
||||
def email_activation_register(user, &block)
|
||||
token = Token.new(:user => user, :action => "register")
|
||||
if user.save and token.save
|
||||
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
|
||||
Mailer.register(token).deliver
|
||||
flash[:notice] = l(:notice_account_register_done)
|
||||
#render action: 'email_valid', locals: {:mail => user.mail}
|
||||
else
|
||||
yield if block_given?
|
||||
end
|
||||
user
|
||||
end
|
||||
|
||||
def automatically_register(user, &block)
|
||||
# Automatic activation
|
||||
user.activate
|
||||
user.last_login_on = Time.now
|
||||
if user.save
|
||||
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
|
||||
#self.logged_user = user
|
||||
#flash[:notice] = l(:notice_account_activated)
|
||||
#redirect_to my_account_url
|
||||
else
|
||||
yield if block_given?
|
||||
end
|
||||
user
|
||||
end
|
||||
|
||||
def administrator_manually__register(user, &block)
|
||||
if user.save
|
||||
UserStatus.create(:user_id => user.id ,:changsets_count => 0, :watchers_count => 0)
|
||||
# Sends an email to the administrators
|
||||
Mailer.account_activation_request(user).deliver
|
||||
#account_pending
|
||||
else
|
||||
yield if block_given?
|
||||
end
|
||||
user
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,24 +1,32 @@
|
|||
class UsersService
|
||||
|
||||
include AccountHelper
|
||||
#将用户注册的功能函数写这里
|
||||
#参数约定
|
||||
#成功返回注册后的User实例,失败直接抛异常
|
||||
|
||||
def register(params)
|
||||
@user = User.new
|
||||
@user.admin = false
|
||||
@user.register
|
||||
@user.login = params[:login]
|
||||
@user.mail = params[:email]
|
||||
unless password.blank?
|
||||
@user.password = params[:password]
|
||||
@user.mail = params[:mail]
|
||||
password = params[:password]
|
||||
password_confirmation = params[:password_confirmation]
|
||||
should_confirmation_password = params[:should_confirmation_password]
|
||||
if !password.blank? && !password_confirmation && should_confirmation_password
|
||||
@user.password,@user.password_confirmation = password,password_confirmation
|
||||
elsif !password.blank? && !should_confirmation_password
|
||||
@user.password = password
|
||||
else
|
||||
@user.password = ""
|
||||
end
|
||||
case Setting.self_registration
|
||||
when '1'
|
||||
register_by_email_activation(@user)
|
||||
@user = email_activation_register(@user)
|
||||
when '3'
|
||||
register_automatically(@user)
|
||||
@user = automatically_register(@user)
|
||||
else
|
||||
register_manully_by_administrator(@user)
|
||||
@user = administrator_manually__register(@user)
|
||||
end
|
||||
if @user.id != nil
|
||||
ue = @user.user_extensions ||= UserExtensions.new
|
||||
|
|
Loading…
Reference in New Issue