summaryrefslogtreecommitdiffstats
path: root/models/user.go
diff options
context:
space:
mode:
authorguillep2k <18600385+guillep2k@users.noreply.github.com>2019-11-10 06:22:19 -0300
committerzeripath <art27@cantab.net>2019-11-10 09:22:19 +0000
commit01a4a7cb14b3a48f9e8115d5bc93af7ae17f1275 (patch)
tree56c8a4cb8058c817165182c2e7872ed0c72c0792 /models/user.go
parent8eeb2877d5803d0501815466d651a519b32bbd3a (diff)
downloadgitea-01a4a7cb14b3a48f9e8115d5bc93af7ae17f1275.tar.gz
gitea-01a4a7cb14b3a48f9e8115d5bc93af7ae17f1275.zip
Auto-subscribe user to repository when they commit/tag to it (#7657)
* Add support for AUTO_WATCH_ON_CHANGES and AUTO_WATCH_ON_CLONE * Update models/repo_watch.go Co-Authored-By: Lauris BH <lauris@nix.lv> * Round up changes suggested by lafriks * Added changes suggested from automated tests * Updated deleteUser to take RepoWatchModeDont into account, corrected inverted DefaultWatchOnClone and DefaultWatchOnChanges behaviour, updated and added tests. * Reinsert import "github.com/Unknwon/com" on http.go * Add migration for new column `watch`.`mode` * Remove serv code * Remove WATCH_ON_CLONE; use hooks, add integrations * Renamed watch_test.go to repo_watch_test.go * Correct fmt * Add missing EOL * Correct name of test function * Reword cheat and ini descriptions * Add update to migration to ensure column value * Clarify comment Co-Authored-By: zeripath <art27@cantab.net> * Simplify if condition
Diffstat (limited to 'models/user.go')
-rw-r--r--models/user.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/models/user.go b/models/user.go
index 7aa1e143e8..4a8c644ccd 100644
--- a/models/user.go
+++ b/models/user.go
@@ -1082,7 +1082,7 @@ func deleteUser(e *xorm.Session, u *User) error {
// ***** START: Watch *****
watchedRepoIDs := make([]int64, 0, 10)
if err = e.Table("watch").Cols("watch.repo_id").
- Where("watch.user_id = ?", u.ID).Find(&watchedRepoIDs); err != nil {
+ Where("watch.user_id = ?", u.ID).And("watch.mode <>?", RepoWatchModeDont).Find(&watchedRepoIDs); err != nil {
return fmt.Errorf("get all watches: %v", err)
}
if _, err = e.Decr("num_watches").In("id", watchedRepoIDs).NoAutoTime().Update(new(Repository)); err != nil {
@@ -1543,6 +1543,7 @@ func GetStarredRepos(userID int64, private bool) ([]*Repository, error) {
// GetWatchedRepos returns the repos watched by a particular user
func GetWatchedRepos(userID int64, private bool) ([]*Repository, error) {
sess := x.Where("watch.user_id=?", userID).
+ And("`watch`.mode<>?", RepoWatchModeDont).
Join("LEFT", "watch", "`repository`.id=`watch`.repo_id")
if !private {
sess = sess.And("is_private=?", false)