watcher.patch

William Schey, 2012-08-28 00:20

Download (1.12 KB)

View differences:

issue.rb (working copy)
91 91
        "(#{table_name}.is_private = #{connection.quoted_false} OR #{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}))"
92 92
      when 'own'
93 93
        user_ids = [user.id] + user.groups.map(&:id)
94
        "(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}))"
94
        "(#{table_name}.author_id = #{user.id} OR #{table_name}.assigned_to_id IN (#{user_ids.join(',')}) OR (SELECT count(*) FROM #{Watcher.table_name}
95
WHERE watchable_id = #{table_name}.id AND user_id = #{user.id}) > 0)"
95 96
      else
96 97
        '1=0'
97 98
      end
......
107 108
      when 'default'
108 109
        !self.is_private? || self.author == user || user.is_or_belongs_to?(assigned_to)
109 110
      when 'own'
110
        self.author == user || user.is_or_belongs_to?(assigned_to)
111
        self.author == user || user.is_or_belongs_to?(assigned_to) || self.watched_by?(user)
111 112
      else
112 113
        false
113 114
      end