summaryrefslogtreecommitdiff
path: root/app/models/concerns/has_timelogs_report.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/concerns/has_timelogs_report.rb')
-rw-r--r--app/models/concerns/has_timelogs_report.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/models/concerns/has_timelogs_report.rb b/app/models/concerns/has_timelogs_report.rb
new file mode 100644
index 00000000000..90f9876de95
--- /dev/null
+++ b/app/models/concerns/has_timelogs_report.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module HasTimelogsReport
+ extend ActiveSupport::Concern
+ include Gitlab::Utils::StrongMemoize
+
+ def timelogs(start_time, end_time)
+ strong_memoize(:timelogs) { timelogs_for(start_time, end_time) }
+ end
+
+ def user_can_access_group_timelogs?(current_user)
+ Ability.allowed?(current_user, :read_group_timelogs, self)
+ end
+
+ private
+
+ def timelogs_for(start_time, end_time)
+ Timelog.between_times(start_time, end_time).for_issues_in_group(self)
+ end
+end