Sha256: 31dd2b2e02e7b6c5bc3a729f84703a0f2de588eddd120cd12aa884728ed0bd2a

Contents?: true

Size: 1.87 KB

Versions: 151

Compression:

Stored size: 1.87 KB

Contents

module Account::Onboarding::UserDetails::ControllerBase
  extend ActiveSupport::Concern

  included do
    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
  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

151 entries across 151 versions & 1 rubygems

Version Path
bullet_train-1.4.3 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.4.2 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.4.1 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.4.0 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.25 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.24 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.23 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.22 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.21 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.20 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.19 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.18 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.17 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.16 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.15 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.14 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.13 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.12 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.11 app/controllers/concerns/account/onboarding/user_details/controller_base.rb
bullet_train-1.3.10 app/controllers/concerns/account/onboarding/user_details/controller_base.rb