votes: make private favorites and upvotes a Gold-only option.
Make private favorites and upvotes a Gold-only account option. Existing Members with private favorites enabled are allowed to keep it enabled, as long as they don't disable it. If they disable it, then they can't re-enable it again without upgrading to Gold first. This is a Gold-only option to prevent uploaders from creating multiple accounts to upvote their own posts. If private upvotes were allowed for Members, then it would be too easy to use fake accounts and private upvotes to upvote your own posts.
This commit is contained in:
@@ -103,6 +103,7 @@ class User < ApplicationRecord
|
||||
validates :per_page, inclusion: { in: (1..PostSets::Post::MAX_PER_PAGE) }
|
||||
validates :password, confirmation: true
|
||||
validates :comment_threshold, inclusion: { in: (-100..5) }
|
||||
validate :validate_enable_private_favorites, on: :update
|
||||
before_validation :normalize_blacklisted_tags
|
||||
before_create :promote_to_owner_if_first_user
|
||||
has_many :artist_versions, foreign_key: :updater_id
|
||||
@@ -192,6 +193,14 @@ class User < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
concerning :ValidationMethods do
|
||||
def validate_enable_private_favorites
|
||||
if enable_private_favorites_was == false && enable_private_favorites == true && !Pundit.policy!(self, self).can_enable_private_favorites?
|
||||
errors.add(:base, "Can't enable privacy mode without a Gold account")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
concerning :AuthenticationMethods do
|
||||
def password=(new_password)
|
||||
@password = new_password
|
||||
|
||||
Reference in New Issue
Block a user