Class: Admin::OtpsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/admin/otps_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/admin/otps_controller.rb', line 13

def create
  @admin_user.otp_secret = otp_params[:otp_secret]

  if @admin_user.otp.verify(otp_params[:token])
    @admin_user.save

    redirect_to admin_admin_user_path(@admin_user), status: :see_other
  else
    @admin_user.errors.add(:token, :invalid)

    respond_to do |format|
      format.html { redirect_to admin_admin_user_path(@admin_user), status: :see_other }
      format.turbo_stream { render locals: { admin: @admin_user } }
    end
  end
end

#destroyObject



30
31
32
33
34
# File 'app/controllers/admin/otps_controller.rb', line 30

def destroy
  @admin_user.update!(otp_secret: nil)

  redirect_to admin_admin_user_path(@admin_user), status: :see_other
end

#newObject



7
8
9
10
11
# File 'app/controllers/admin/otps_controller.rb', line 7

def new
  @admin_user.otp_secret = ROTP::Base32.random

  render :new, locals: { admin: @admin_user }
end