render :partial => "terms"
else
@title = t 'user.terms.title'
- @user ||= session[:new_user]
- if !@user
- redirect_to :action => :login, :referer => request.fullpath
- elsif @user.terms_agreed?
+ if @user and @user.terms_agreed?
# Already agreed to terms, so just show settings
redirect_to :action => :account, :display_name => @user.display_name
+ elsif @user.nil? and session[:new_user].nil?
+ redirect_to :action => :login, :referer => request.fullpath
end
end
end
@user.data_public = true
@user.description = "" if @user.description.nil?
@user.creation_ip = request.remote_ip
- @user.languages = request.user_preferred_languages
+ @user.languages = http_accept_language.user_preferred_languages
@user.terms_agreed = Time.now.getutc
@user.terms_seen = true
@user.openid_url = nil if @user.openid_url and @user.openid_url.empty?
else
session[:referer] = params[:referer]
- @user = User.new(params[:user])
+ @user = User.new(user_params)
@user.status = "pending"
if @user.openid_url.present? && @user.pass_crypt.empty?
# it's .now so that this doesn't propagate to other pages.
flash.now[:skip_terms] = true
end
+
+ ##
+ # return permitted user parameters
+ def user_params
+ params.require(:user).permit(:email, :email_confirmation, :display_name, :openid_url, :pass_crypt, :pass_crypt_confirmation)
+ end
end