- before_action :require_self, :only => [:account]
- before_action :check_database_writable, :only => [:new, :account, :confirm, :confirm_email, :lost_password, :reset_password, :go_public]
- before_action :require_cookies, :only => [:new, :login, :confirm]
- before_action :lookup_user_by_name, :only => [:set_status, :delete]
- before_action :allow_thirdparty_images, :only => [:show, :account]
-
- def terms
- @legale = params[:legale] || OSM.ip_to_country(request.remote_ip) || Settings.default_legale
- @text = OSM.legal_text_for_country(@legale)
-
- if request.xhr?
- render :partial => "terms"
- else
- @title = t "users.terms.title"
-
- if current_user&.terms_agreed?
- # Already agreed to terms, so just show settings
- redirect_to :action => :account, :display_name => current_user.display_name
- elsif current_user.nil? && session[:new_user].nil?
- redirect_to :action => :login, :referer => request.fullpath
- end
- end
- end
-
- def save
- @title = t "users.new.title"
-
- if params[:decline] || !(params[:read_tou] && params[:read_ct])
- if current_user
- current_user.terms_seen = true
-
- flash[:notice] = t("users.new.terms declined", :url => t("users.new.terms declined url")).html_safe if current_user.save
-
- if params[:referer]
- redirect_to params[:referer]
- else
- redirect_to :action => :account, :display_name => current_user.display_name
- end
- elsif params[:decline]
- redirect_to t("users.terms.declined")
- else
- redirect_to :action => :terms
- end
- elsif current_user
- unless current_user.terms_agreed?
- current_user.consider_pd = params[:user][:consider_pd]
- current_user.tou_agreed = Time.now.getutc
- current_user.terms_agreed = Time.now.getutc
- current_user.terms_seen = true
-
- flash[:notice] = t "users.new.terms accepted" if current_user.save
- end
-
- if params[:referer]
- redirect_to params[:referer]
- else
- redirect_to :action => :account, :display_name => current_user.display_name
- end
- else
- self.current_user = session.delete(:new_user)
-
- if check_signup_allowed(current_user.email)
- current_user.data_public = true
- current_user.description = "" if current_user.description.nil?
- current_user.creation_ip = request.remote_ip
- current_user.languages = http_accept_language.user_preferred_languages
- current_user.terms_agreed = Time.now.getutc
- current_user.tou_agreed = Time.now.getutc
- current_user.terms_seen = true
-
- if current_user.auth_uid.blank?
- current_user.auth_provider = nil
- current_user.auth_uid = nil
- end