Sha256: 9caa4cf13718641b9717682a8c7df2aa7d9014fd6eab30ec96e30e9285c67103

Contents?: true

Size: 1.83 KB

Versions: 5

Compression:

Stored size: 1.83 KB

Contents

class Account::Onboarding::UserDetailsController < Account::ApplicationController
  layout "devise"
  load_and_authorize_resource class: "User"

  # this is because cancancan doesn't let us set the instance variable name above.
  before_action do
    @user = @user_detail
  end

  # GET /users/1/edit
  def edit
    flash[:notice] = nil
  end

  # PATCH/PUT /users/1
  # PATCH/PUT /users/1.json
  def update
    respond_to do |format|
      if @user.update(user_params)
        # if you update your own user account, devise will normally kick you out, so we do this instead.
        bypass_sign_in current_user.reload

        if @user.details_provided?
          format.html { redirect_to account_team_path(@user.teams.first), notice: "" }
        else
          format.html {
            flash[:error] = I18n.t("global.notifications.all_fields_required")
            redirect_to edit_account_onboarding_user_detail_path(@user)
          }
        end

        format.json { render :show, status: :ok, location: [:account, @user] }
      else
        format.html { render :edit, status: :unprocessable_entity }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  private

  # Never trust parameters from the scary internet, only allow the white list through.
  def user_params
    permitted_attributes = [
      :first_name,
      :last_name,
      :time_zone,
      # 🚅 super scaffolding will insert new fields above this line.
    ]

    permitted_hash = {
      # 🚅 super scaffolding will insert new arrays above this line.
    }

    if can? :edit, @user.current_team
      permitted_hash[:current_team_attributes] = [:id, :name]
    end

    params.require(:user).permit(permitted_attributes, permitted_hash)

    # 🚅 super scaffolding will insert processing for new fields above this line.
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bullet_train-1.0.4 app/controllers/account/onboarding/user_details_controller.rb
bullet_train-1.0.3 app/controllers/account/onboarding/user_details_controller.rb
bullet_train-1.0.2 app/controllers/account/onboarding/user_details_controller.rb
bullet_train-1.0.1 app/controllers/account/onboarding/user_details_controller.rb
bullet_train-1.0.0 app/controllers/account/onboarding/user_details_controller.rb