diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-06-23 10:46:24 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-06-23 10:46:24 +0200 |
commit | 37fd9670a586af057d12c3f789c0701ae074314f (patch) | |
tree | cc979a0bc830a9cc0c4e0d8beb90c487578dd522 /app/models/login_activity.rb | |
parent | a434f370f38ac66e05000545e36d7c696f4962d0 (diff) | |
parent | 63b807cffcba0579efdf2f4ed4a2deb93af4850b (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Diffstat (limited to 'app/models/login_activity.rb')
-rw-r--r-- | app/models/login_activity.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/login_activity.rb b/app/models/login_activity.rb new file mode 100644 index 000000000..52a0fd01d --- /dev/null +++ b/app/models/login_activity.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true +# == Schema Information +# +# Table name: login_activities +# +# id :bigint(8) not null, primary key +# user_id :bigint(8) not null +# authentication_method :string +# provider :string +# success :boolean +# failure_reason :string +# ip :inet +# user_agent :string +# created_at :datetime +# + +class LoginActivity < ApplicationRecord + enum authentication_method: { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' } + + belongs_to :user + + validates :authentication_method, inclusion: { in: authentication_methods.keys } + + def detection + @detection ||= Browser.new(user_agent) + end + + def browser + detection.id + end + + def platform + detection.platform.id + end +end |