Sha256: 15c466b58e40196c05111b6dbb63e2637a85eb6d7041d4d315a9033d61023a20

Contents?: true

Size: 1.05 KB

Versions: 5

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Masks
  # @visibility private
  class OneTimeCodeController < ApplicationController
    require_mask type: :session, only: :new

    before_action only: %i[create destroy] do
      require_sudo(one_time_code_path)
    end

    def new
      respond_to { |format| format.html { render(:new) } }
    end

    def create
      if secret_param && code_param
        @actor.totp_secret = secret_param
        @actor.totp_code = code_param
        @actor.save if @actor.valid?

        flash[:errors] = @actor.errors.full_messages unless @actor.valid?
      end

      respond_to { |format| format.html { redirect_to one_time_code_path } }
    end

    def destroy
      @actor.totp_secret = nil
      @actor.save if @actor.valid?

      respond_to { |format| format.html { redirect_to one_time_code_path } }
    end

    private

    def create_params
      params.require(:one_time_code).permit(:code, :secret)
    end

    def code_param
      create_params[:code]
    end

    def secret_param
      create_params[:secret]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
masks-0.4.0 app/controllers/masks/one_time_code_controller.rb
masks-0.3.2 app/controllers/masks/one_time_code_controller.rb
masks-0.3.1 app/controllers/masks/one_time_code_controller.rb
masks-0.3.0 app/controllers/masks/one_time_code_controller.rb
masks-0.2.0 app/controllers/masks/one_time_code_controller.rb