Sha256: 92a8cc7e83882920b231b19b20233f8c90e8a08235ce2730acab6f87f4a75636

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

class RailsAuthWeb::JoinController < RailsAuthWeb::BaseController

  def new
    @user = User.new(password: '')
    store_location request.referer if request.referer.present?
  end

  def create
    @user = User.new(user_params)
    if @user.join(params)
      login_as @user
      redirect_back_or_default
    else
      render :new, error: @user.errors.full_messages
    end
  end

  def new_mobile
    @user = User.new(password: '')
  end

  def mobile_confirm
    @user = User.find_by(mobile: params[:mobile])

    if @user
      @mobile_token = @user.create_mobile_token
    else
      @mobile_token = MobileToken.new(account: params[:mobile])
      @mobile_token.save_with_send
    end

    render json: { code: 200, messages: 'Validation code has been sent!' }
  end

  def create_mobile
    @user = User.find_or_initialize_by(mobile: params[:mobile])
    if @user.persisted?
      @mobile_token = @user.mobile_tokens.valid.find_by(token: params[:token])
    else
      @mobile_token = MobileToken.valid.find_by(token: params[:token], mobile: params[:mobile])
      @user = @mobile_token.build_user if @mobile_token
    end

    if @mobile_token
      @user.mobile_confirm = true
    else
      render :new, error: 'Token is invalid' and return
    end

    if @user.save
      login_as @user
      redirect_back_or_default
    else
      render :new, error: @user.errors.full_messages
    end
  end

  private
  def user_params
    params.fetch(:user, {}).permit(
      :name,
      :email,
      :mobile,
      :password,
      :password_confirmation
    )
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_auth-1.0.5 app/controllers/rails_auth_web/join_controller.rb
rails_auth-1.0.4 app/controllers/the_auth_web/join_controller.rb