summaryrefslogtreecommitdiffstats
path: root/models/repo_watch.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo_watch.go')
-rw-r--r--models/repo_watch.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/models/repo_watch.go b/models/repo_watch.go
index fb89a55a11..8019027c1e 100644
--- a/models/repo_watch.go
+++ b/models/repo_watch.go
@@ -109,6 +109,23 @@ func notifyWatchers(e Engine, act *Action) error {
act.ID = 0
act.UserID = watches[i].UserID
+ act.Repo.Units = nil
+
+ switch act.OpType {
+ case ActionCommitRepo, ActionPushTag, ActionDeleteTag, ActionDeleteBranch:
+ if !act.Repo.CheckUnitUser(act.UserID, false, UnitTypeCode) {
+ continue
+ }
+ case ActionCreateIssue, ActionCommentIssue, ActionCloseIssue, ActionReopenIssue:
+ if !act.Repo.CheckUnitUser(act.UserID, false, UnitTypeIssues) {
+ continue
+ }
+ case ActionCreatePullRequest, ActionMergePullRequest, ActionClosePullRequest, ActionReopenPullRequest:
+ if !act.Repo.CheckUnitUser(act.UserID, false, UnitTypePullRequests) {
+ continue
+ }
+ }
+
if _, err = e.InsertOne(act); err != nil {
return fmt.Errorf("insert new action: %v", err)
}