about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFire Demon <firedemon@creature.cafe>2020-07-31 02:10:39 -0500
committerFire Demon <firedemon@creature.cafe>2020-08-30 05:45:16 -0500
commit4c47a96f67d303dec7b6047474380050053ac3d7 (patch)
tree93a3a6ca46bab8e6cbac035bb866a86893cf1686
parenta036e8561344866b072c2874906c9c9533cd27ea (diff)
[Database, Models] Add missing uniqueness validations
-rw-r--r--app/models/account_domain_permission.rb3
-rw-r--r--app/models/inline_media_attachment.rb2
-rw-r--r--app/models/status_domain_permission.rb3
-rw-r--r--app/models/status_mute.rb2
4 files changed, 10 insertions, 0 deletions
diff --git a/app/models/account_domain_permission.rb b/app/models/account_domain_permission.rb
index e91a4b8cf..2606c4133 100644
--- a/app/models/account_domain_permission.rb
+++ b/app/models/account_domain_permission.rb
@@ -13,6 +13,9 @@ class AccountDomainPermission < ApplicationRecord
   include Paginable
   include Cacheable
 
+  validates :domain, presence: true, uniqueness: { scope: :account_id }
+  validates :visibility, presence: true
+
   belongs_to :account, inverse_of: :domain_permissions
   enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility
 
diff --git a/app/models/inline_media_attachment.rb b/app/models/inline_media_attachment.rb
index dcf9a5ca9..faa8ca1ac 100644
--- a/app/models/inline_media_attachment.rb
+++ b/app/models/inline_media_attachment.rb
@@ -11,6 +11,8 @@
 class InlineMediaAttachment < ApplicationRecord
   include Cacheable
 
+  validates :status_id, uniqueness: { scope: :media_attachment_id }
+
   belongs_to :status, inverse_of: :inlined_attachments
   belongs_to :media_attachment, inverse_of: :inlines
 
diff --git a/app/models/status_domain_permission.rb b/app/models/status_domain_permission.rb
index 0e72267bc..be767a2b6 100644
--- a/app/models/status_domain_permission.rb
+++ b/app/models/status_domain_permission.rb
@@ -13,6 +13,9 @@ class StatusDomainPermission < ApplicationRecord
   include Paginable
   include Cacheable
 
+  validates :domain, presence: true, uniqueness: { scope: :status_id }
+  validates :visibility, presence: true
+
   belongs_to :status, inverse_of: :domain_permissions
   enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility
 
diff --git a/app/models/status_mute.rb b/app/models/status_mute.rb
index 0d7f9ec78..223893604 100644
--- a/app/models/status_mute.rb
+++ b/app/models/status_mute.rb
@@ -11,6 +11,8 @@
 class StatusMute < ApplicationRecord
   include Cacheable
 
+  validates :account_id, uniqueness: { scope: :status_id }
+
   belongs_to :account, inverse_of: :status_mutes
   belongs_to :status, inverse_of: :mutes