Class: UsersController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- UsersController
- Defined in:
- app/controllers/users_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #email_verification ⇒ Object
- #register ⇒ Object
- #settings ⇒ Object
- #update ⇒ Object
- #verify_email ⇒ Object
Methods inherited from ApplicationController
Instance Method Details
#create ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/users_controller.rb', line 9 def create if User::User.find_by(email: params[:email]) if !User::User.find_by(email: params[:email]).verified user = User::User.find_by(email: params[:email]) session[:current_user_id] = user.id session[:new_user] = true redirect_to action: "email_verification" else flash[:notice] = "Looks like you already have an Obl.ong account" redirect_to controller: "auth", action: "login" end else @user = User::User.new(email: params[:email], name: params[:name], verified: false, webauthn_id: WebAuthn.generate_user_id, otp_counter: 0, hotp_token: ROTP::Base32.random) if @user.save session[:current_user_id] = @user.id session[:new_user] = true redirect_to action: "email_verification" else render json: @user.errors, status: 503 end end end |
#email_verification ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'app/controllers/users_controller.rb', line 35 def email_verification user = current_user @user = user if Time.now.to_i > (user.try(:otp_last_minted).nil? ? 0 : user.otp_last_minted) + 600 || params[:resend] == "true" User::Mailer.with(user: user).verification_email.deliver_later if params[:resend] == "true" then flash[:notice] = "Sent email code" end end end |
#register ⇒ Object
6 7 |
# File 'app/controllers/users_controller.rb', line 6 def register end |
#settings ⇒ Object
60 61 62 63 64 |
# File 'app/controllers/users_controller.rb', line 60 def settings @user = current_user @credentials = User::Credential.where(user_users_id: @user.id) end |
#update ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/controllers/users_controller.rb', line 66 def update @user = current_user @user.name = params[:name] @user.email = params[:email] if @user.email_changed? @user.verified = false end @user.save! redirect_to(controller: "users", action: "settings") end |
#verify_email ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/users_controller.rb', line 44 def verify_email u = current_user if u.use_otp(params[:code]) == true session[:email_verified] = true if params[:skip_passkey] == "true" u.update!(verified: true) session[:authenticated] = true redirect_to controller: "domains", action: "index" else redirect_to controller: "auth", action: "create_key" end else render inline: "<%= turbo_stream.replace \"error\" do %><p class=\"error\">Invalid OTP</p><% end %>", status: :unprocessable_entity, format: :turbo_stream end end |