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 session[:new_user].nil?
+ redirect_to :action => :login, :referer => request.fullpath
end
end
end
@user.openid_url = nil if @user.openid_url and @user.openid_url.empty?
if @user.save
- flash[:piwik_goal] = PIWIK_SIGNUP_GOAL if defined?(PIWIK_SIGNUP_GOAL)
+ flash[:piwik_goal] = PIWIK["goals"]["signup"] if defined?(PIWIK)
+
+ referer = welcome_path
begin
- referer_params = Rack::Utils.parse_query(URI(session[:referer]).query)
- referer = welcome_path(referer_params.slice(:lat, :lon, :zoom, :editor))
+ uri = URI(session[:referer])
+ /map=(.*)\/(.*)\/(.*)/.match(uri.fragment) do |m|
+ editor = Rack::Utils.parse_query(uri.query).slice('editor')
+ referer = welcome_path({'zoom' => m[1],
+ 'lat' => m[2],
+ 'lon' => m[3]}.merge(editor))
+ end
rescue
- referer = welcome_path
+ # Use default
end
if @user.status == "active"
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?
end
def confirm
- if request.post? && (token = UserToken.find_by_token(params[:confirm_string]))
- if token.user.active?
+ if request.post?
+ token = UserToken.find_by_token(params[:confirm_string])
+ if token && token.user.active?
flash[:error] = t('user.confirm.already active')
redirect_to :action => 'login'
+ elsif !token || token.expired?
+ flash[:error] = t('user.confirm.unknown token')
+ redirect_to :action => 'confirm'
else
user = token.user
user.status = "active"
cookies.permanent["_osm_username"] = user.display_name
- if user.new_email.blank?
+ if user.new_email.blank? or user.new_email == user.email
flash.now[:notice] = t 'user.account.flash update success'
else
user.email = user.new_email
# 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