Class: Commontator::Comment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/commontator/comment.rb

Instance Method Summary collapse

Instance Method Details

#can_be_created_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
# File 'app/models/commontator/comment.rb', line 50

def can_be_created_by?(user)
  !thread.is_closed? && thread.can_be_read_by?(user) && user == commontator
end

#can_be_deleted_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
64
65
66
# File 'app/models/commontator/comment.rb', line 61

def can_be_deleted_by?(user)
  (!thread.is_closed? &&\
    ((user == commontator && thread.config.can_delete_own_comments) &&\
    (thread.comments.last == self || thread.config.can_delete_old_comments))) ||\
    thread.can_be_edited_by?(user)
end

#can_be_edited_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
57
58
59
# File 'app/models/commontator/comment.rb', line 54

def can_be_edited_by?(user)
  !thread.is_closed? && !is_deleted? &&\
    ((user == commontator && thread.config.can_edit_own_comments) ||\
    (thread.can_be_edited_by?(user) && thread.config.admin_can_edit_comments)) &&\
    (thread.comments.last == self || thread.config.can_edit_old_comments)
end

#can_be_read_by?(user) ⇒ Boolean

Access control methods #

Returns:

  • (Boolean)


44
45
46
47
48
# File 'app/models/commontator/comment.rb', line 44

def can_be_read_by?(user)
  (thread.can_be_read_by?(user) && (!is_deleted? ||\
    thread.config.deleted_comments_are_visible)) ||\
    thread.can_be_edited_by?(user)
end

#can_be_voted_on?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'app/models/commontator/comment.rb', line 68

def can_be_voted_on?
  is_votable && !is_deleted? && thread.config.comments_can_be_voted_on
end

#can_be_voted_on_by?(user) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
75
# File 'app/models/commontator/comment.rb', line 72

def can_be_voted_on_by?(user)
  can_be_voted_on? && !thread.is_closed? &&\
    thread.can_be_read_by?(user) && user != commontator
end

#delete(user = nil) ⇒ Object



29
30
31
32
33
# File 'app/models/commontator/comment.rb', line 29

def delete(user = nil)
  self.deleted_at = Time.now
  self.deleter = user
  self.save!
end

#is_deleted?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/models/commontator/comment.rb', line 25

def is_deleted?
  !deleted_at.blank?
end

#is_modified?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'app/models/commontator/comment.rb', line 21

def is_modified?
  updated_at != created_at
end

#undeleteObject



35
36
37
38
# File 'app/models/commontator/comment.rb', line 35

def undelete
  self.deleted_at = nil
  self.save!
end