diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index ea2ce7024..fd30443c8 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -14,7 +14,7 @@ module ProjectsHelper end def sidebar_folders_tree(team, user) - records = user.projects_tree(team) + ProjectFolder.inner_folders(team) + records = team.projects.active.visible_to(user, team) + ProjectFolder.inner_folders(team) view_state = team.current_view_state(user) records = case view_state.state.dig('projects', 'active', 'sort') when 'new' diff --git a/app/models/project.rb b/app/models/project.rb index 902477617..570879893 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -46,10 +46,8 @@ class Project < ApplicationRecord scope :visible_to, (lambda do |user, team| unless user.is_admin_of_team?(team) left_outer_joins(:user_projects) - .where( - 'visibility = 1 OR user_projects.user_id = :id', - id: user.id - ).group(:id) + .where('visibility = 1 OR user_projects.user_id = :id', id: user.id) + .group(:id) end end) diff --git a/app/models/user.rb b/app/models/user.rb index c3f481a00..3c90b43a7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -438,17 +438,6 @@ class User < ApplicationRecord result || [] end - def projects_tree(team) - result = team.projects - unless is_admin_of_team?(team) - # Only admins see all projects of the team - result = result.joins(:user_projects).where( - 'visibility=1 OR user_projects.user_id=:user_id', user_id: id - ) - end - result.where(archived: false) - end - # Finds all activities of user that is assigned to project. If user # is not an owner of the project, user must be also assigned to # module.