You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

issue.go 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package repo
  5. import (
  6. "context"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/models/unit"
  9. "code.gitea.io/gitea/modules/log"
  10. "code.gitea.io/gitea/modules/setting"
  11. )
  12. // ___________.__ ___________ __
  13. // \__ ___/|__| _____ ___\__ ___/___________ ____ | | __ ___________
  14. // | | | |/ \_/ __ \| | \_ __ \__ \ _/ ___\| |/ // __ \_ __ \
  15. // | | | | Y Y \ ___/| | | | \// __ \\ \___| <\ ___/| | \/
  16. // |____| |__|__|_| /\___ >____| |__| (____ /\___ >__|_ \\___ >__|
  17. // \/ \/ \/ \/ \/ \/
  18. // CanEnableTimetracker returns true when the server admin enabled time tracking
  19. // This overrules IsTimetrackerEnabled
  20. func (repo *Repository) CanEnableTimetracker() bool {
  21. return setting.Service.EnableTimetracking
  22. }
  23. // IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs.
  24. func (repo *Repository) IsTimetrackerEnabled() bool {
  25. return repo.IsTimetrackerEnabledCtx(db.DefaultContext)
  26. }
  27. // IsTimetrackerEnabledCtx returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs.
  28. func (repo *Repository) IsTimetrackerEnabledCtx(ctx context.Context) bool {
  29. if !setting.Service.EnableTimetracking {
  30. return false
  31. }
  32. var u *RepoUnit
  33. var err error
  34. if u, err = repo.GetUnitCtx(ctx, unit.TypeIssues); err != nil {
  35. return setting.Service.DefaultEnableTimetracking
  36. }
  37. return u.IssuesConfig().EnableTimetracker
  38. }
  39. // AllowOnlyContributorsToTrackTime returns value of IssuesConfig or the default value
  40. func (repo *Repository) AllowOnlyContributorsToTrackTime() bool {
  41. var u *RepoUnit
  42. var err error
  43. if u, err = repo.GetUnit(unit.TypeIssues); err != nil {
  44. return setting.Service.DefaultAllowOnlyContributorsToTrackTime
  45. }
  46. return u.IssuesConfig().AllowOnlyContributorsToTrackTime
  47. }
  48. // IsDependenciesEnabled returns if dependencies are enabled and returns the default setting if not set.
  49. func (repo *Repository) IsDependenciesEnabled() bool {
  50. return repo.IsDependenciesEnabledCtx(db.DefaultContext)
  51. }
  52. // IsDependenciesEnabledCtx returns if dependencies are enabled and returns the default setting if not set.
  53. func (repo *Repository) IsDependenciesEnabledCtx(ctx context.Context) bool {
  54. var u *RepoUnit
  55. var err error
  56. if u, err = repo.GetUnitCtx(ctx, unit.TypeIssues); err != nil {
  57. log.Trace("%s", err)
  58. return setting.Service.DefaultEnableDependencies
  59. }
  60. return u.IssuesConfig().EnableDependencies
  61. }