diff --git a/models/notification.go b/models/notification.go index 8c36c0c5c..cda2916fa 100644 --- a/models/notification.go +++ b/models/notification.go @@ -123,10 +123,10 @@ func createOrUpdateIssueNotifications(e Engine, issue *Issue, notificationAuthor for _, watch := range watches { issue.Repo.Units = nil - if issue.IsPull && !issue.Repo.CheckUnitUser(watch.UserID, false, UnitTypePullRequests) { + if issue.IsPull && !issue.Repo.checkUnitUser(e, watch.UserID, false, UnitTypePullRequests) { continue } - if !issue.IsPull && !issue.Repo.CheckUnitUser(watch.UserID, false, UnitTypeIssues) { + if !issue.IsPull && !issue.Repo.checkUnitUser(e, watch.UserID, false, UnitTypeIssues) { continue } diff --git a/models/org_team.go b/models/org_team.go index 3b37f936f..505f11d39 100644 --- a/models/org_team.go +++ b/models/org_team.go @@ -215,7 +215,11 @@ func (t *Team) RemoveRepository(repoID int64) error { // UnitEnabled returns if the team has the given unit type enabled func (t *Team) UnitEnabled(tp UnitType) bool { - if err := t.getUnits(x); err != nil { + return t.unitEnabled(x, tp) +} + +func (t *Team) unitEnabled(e Engine, tp UnitType) bool { + if err := t.getUnits(e); err != nil { log.Warn("Error loading repository (ID: %d) units: %s", t.ID, err.Error()) } diff --git a/models/repo.go b/models/repo.go index c334431be..25def6ad8 100644 --- a/models/repo.go +++ b/models/repo.go @@ -321,7 +321,11 @@ func (repo *Repository) getUnits(e Engine) (err error) { // CheckUnitUser check whether user could visit the unit of this repository func (repo *Repository) CheckUnitUser(userID int64, isAdmin bool, unitType UnitType) bool { - if err := repo.getUnitsByUserID(x, userID, isAdmin); err != nil { + return repo.checkUnitUser(x, userID, isAdmin, unitType) +} + +func (repo *Repository) checkUnitUser(e Engine, userID int64, isAdmin bool, unitType UnitType) bool { + if err := repo.getUnitsByUserID(e, userID, isAdmin); err != nil { return false } @@ -369,7 +373,7 @@ func (repo *Repository) getUnitsByUserID(e Engine, userID int64, isAdmin bool) ( var newRepoUnits = make([]*RepoUnit, 0, len(repo.Units)) for _, u := range repo.Units { for _, team := range teams { - if team.UnitEnabled(u.Type) { + if team.unitEnabled(e, u.Type) { newRepoUnits = append(newRepoUnits, u) break }