From 6c225bd01c53ad4cc3429e05c7bb71da3b0a4b7b Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 17 Jun 2018 01:01:24 +0100 Subject: [PATCH] Only include issues visible to the current user in the count --- app/controllers/issues_controller.rb | 2 +- app/helpers/issues_helper.rb | 2 +- app/models/issue.rb | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 96e68573e..d4e9a3bdf 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -15,7 +15,7 @@ class IssuesController < ApplicationController @issue_types.concat %w[DiaryEntry DiaryComment User] if current_user.administrator? @users = User.joins(:roles).where(:user_roles => { :role => current_user.roles.map(&:role) }).distinct - @issues = Issue.where(:assigned_role => current_user.roles.map(&:role)) + @issues = Issue.visible_to(current_user) # If search if params[:search_by_user] && params[:search_by_user].present? diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4dc1637de..f9a84ba7d 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -26,7 +26,7 @@ module IssuesHelper end def open_issues_count - count = Issue.open.limit(100).size + count = Issue.visible_to(current_user).open.limit(100).size if count > 99 content_tag(:span, "99+", :class => "count-number") elsif count > 0 diff --git a/app/models/issue.rb b/app/models/issue.rb index dd068859a..d893a6e3a 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -48,6 +48,7 @@ class Issue < ActiveRecord::Base before_validation :set_reported_user scope :with_status, ->(issue_status) { where(:status => statuses[issue_status]) } + scope :visible_to, ->(user) { where(:assigned_role => user.roles.map(&:role)) } def read_reports resolved_at.present? ? reports.where("updated_at < ?", resolved_at) : nil -- 2.39.5