additional checks on forum topic visibility

This commit is contained in:
Albert Yi
2016-11-04 16:24:54 -07:00
parent a22a7c3302
commit eb6746a8a8
9 changed files with 35 additions and 11 deletions

View File

@@ -16,6 +16,7 @@ class ForumPost < ActiveRecord::Base
validates_presence_of :body, :creator_id
validate :validate_topic_is_unlocked
validate :topic_id_not_invalid
validate :topic_is_not_restricted, :on => :create
before_destroy :validate_topic_is_unlocked
after_save :delete_topic_if_original_post
mentionable(
@@ -144,8 +145,18 @@ class ForumPost < ActiveRecord::Base
end
end
def topic_is_not_restricted
if topic && !topic.visible?(creator)
errors.add(:topic, "restricted")
end
end
def editable_by?(user)
creator_id == user.id || user.is_moderator?
(creator_id == user.id || user.is_moderator?) && visible?(user)
end
def visible?(user)
user.is_moderator? || (topic.visible?(user) && !is_deleted?)
end
def update_topic_updated_at_on_create

View File

@@ -142,7 +142,11 @@ class ForumTopic < ActiveRecord::Base
include UserLevelMethods
def editable_by?(user)
creator_id == user.id || user.is_moderator?
(creator_id == user.id || user.is_moderator?) && visible?(user)
end
def visible?(user)
user.level >= min_level
end
def initialize_is_deleted