app/models/commontator/comment.rb in commontator-0.5.14 vs app/models/commontator/comment.rb in commontator-1.0.0
- old
+ new
@@ -6,19 +6,20 @@
has_one :commontable, :through => :thread
validates_presence_of :creator, :on => :create
validates_presence_of :thread
+ validates_presence_of :body
attr_accessible :body
- cattr_accessor :is_votable
- if respond_to?(:acts_as_votable)
- acts_as_votable if respond_to?(:acts_as_votable)
- self.is_votable = true
- else
- self.is_votable = false
+ cattr_accessor :acts_as_votable_initialized
+
+ def is_votable?
+ return false unless self.class.respond_to?(:acts_as_votable)
+ self.class.acts_as_votable unless acts_as_votable_initialized
+ self.class.acts_as_votable_initialized = true
end
def is_modified?
updated_at != created_at
end
@@ -33,16 +34,18 @@
"#{config.comment_create_verb_past.capitalize} on ") + \
updated_at.strftime(config.timestamp_format)
end
def delete(user = nil)
+ return false if is_deleted?
self.deleted_at = Time.now
self.deleter = user
self.save!
end
def undelete
+ return false unless is_deleted?
self.deleted_at = nil
self.save!
end
##########################
@@ -59,23 +62,24 @@
!thread.is_closed? && thread.can_be_read_by?(user) && user == creator
end
def can_be_edited_by?(user)
!thread.is_closed? && !is_deleted? &&\
- ((user == creator && thread.config.can_edit_own_comments) ||\
+ ((user == creator && thread.config.can_edit_own_comments && thread.can_be_read_by?(user)) ||\
(thread.can_be_edited_by?(user) && thread.config.admin_can_edit_comments)) &&\
(thread.comments.last == self || thread.config.can_edit_old_comments)
end
def can_be_deleted_by?(user)
(!thread.is_closed? &&\
- ((user == creator && thread.config.can_delete_own_comments) &&\
+ ((user == creator && thread.config.can_delete_own_comments && \
+ thread.can_be_read_by?(user) && (!is_deleted? || deleter == user)) &&\
(thread.comments.last == self || thread.config.can_delete_old_comments))) ||\
thread.can_be_edited_by?(user)
end
def can_be_voted_on?
- is_votable && !is_deleted? && thread.config.comments_can_be_voted_on
+ is_votable? && !is_deleted? && thread.config.can_vote_on_comments
end
def can_be_voted_on_by?(user)
can_be_voted_on? && !thread.is_closed? &&\
thread.can_be_read_by?(user) && user != creator