Skip to content

Commit

Permalink
Merge pull request #14759 from opf/fix/time-tracking-error-with-ongoi…
Browse files Browse the repository at this point in the history
…ng-time-entry

fix time entries endpoint to return ongoing time entries while lacking log own time permission
  • Loading branch information
machisuji committed Mar 6, 2024
2 parents 56ed50b + a1e0660 commit 02e48de
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
7 changes: 6 additions & 1 deletion modules/costs/app/models/time_entries/scopes/ongoing.rb
Expand Up @@ -37,7 +37,12 @@ def ongoing

def visible_ongoing(user = User.current)
TimeEntry
.where(work_package_id: WorkPackage.allowed_to(user, :log_own_time), user:, ongoing: true)
.where(work_package_id: visible_work_packages(user).select(:id), user:, ongoing: true)
end

def visible_work_packages(user)
WorkPackage.allowed_to(user, :log_own_time).or(
WorkPackage.where(project_id: Project.allowed_to(User.current, :log_time)))
end

def not_ongoing
Expand Down
Expand Up @@ -55,6 +55,14 @@
it 'only returns the users own time entries' do
expect(subject).to contain_exactly(user_timer)
end

context 'when user has log_time permission' do
let(:user) { create(:user, member_with_permissions: { project => %i[log_time] }) }

it 'still returns the users own time entries' do
expect(subject).to contain_exactly(user_timer)
end
end
end
end
end

0 comments on commit 02e48de

Please sign in to comment.