about summary refs log tree commit diff
path: root/app/models/webauthn_credential.rb
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2020-08-31 12:28:25 -0500
committerStarfall <us@starfall.systems>2020-08-31 12:28:25 -0500
commitc5bb91194f0df90ea9c59ea6af1bd985b295fb30 (patch)
tree47b303b2c64ff1920fb19d01093a08dc9fd20ac8 /app/models/webauthn_credential.rb
parent27ee0fc8c4c13c53f81ca3db781b9d0783b877e5 (diff)
parentf715e8b51612820a18fa307e4465eb0c1a088f86 (diff)
Merge branch 'glitch' into main
Diffstat (limited to 'app/models/webauthn_credential.rb')
-rw-r--r--app/models/webauthn_credential.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/models/webauthn_credential.rb b/app/models/webauthn_credential.rb
new file mode 100644
index 000000000..4129ce539
--- /dev/null
+++ b/app/models/webauthn_credential.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: webauthn_credentials
+#
+#  id          :bigint(8)        not null, primary key
+#  external_id :string           not null
+#  public_key  :string           not null
+#  nickname    :string           not null
+#  sign_count  :bigint(8)        default(0), not null
+#  user_id     :bigint(8)
+#  created_at  :datetime         not null
+#  updated_at  :datetime         not null
+#
+
+class WebauthnCredential < ApplicationRecord
+  validates :external_id, :public_key, :nickname, :sign_count, presence: true
+  validates :external_id, uniqueness: true
+  validates :nickname, uniqueness: { scope: :user_id }
+  validates :sign_count,
+            numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: 2**32 - 1 }
+end