forked from gitea/gitea
		
	Move user functions into user.go (#17659)
* Move user functions into user.go * Fix test
This commit is contained in:
		
							parent
							
								
									6874fe90e5
								
							
						
					
					
						commit
						3c3855a05c
					
				
							
								
								
									
										18
									
								
								models/admin/main_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								models/admin/main_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| // Copyright 2020 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package admin | ||||
| 
 | ||||
| import ( | ||||
| 	"path/filepath" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
| ) | ||||
| 
 | ||||
| func TestMain(m *testing.M) { | ||||
| 	unittest.MainTest(m, filepath.Join("..", ".."), | ||||
| 		"notice.yml", | ||||
| 	) | ||||
| } | ||||
| @ -1,11 +1,11 @@ | ||||
| // Copyright 2014 The Gogs Authors. All rights reserved. | ||||
| // Copyright 2020 The Gitea Authors. All rights reserved. | ||||
| // Copyright 2021 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package models | ||||
| package admin | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| @ -44,10 +44,11 @@ func (n *Notice) TrStr() string { | ||||
| 
 | ||||
| // CreateNotice creates new system notice. | ||||
| func CreateNotice(tp NoticeType, desc string, args ...interface{}) error { | ||||
| 	return createNotice(db.GetEngine(db.DefaultContext), tp, desc, args...) | ||||
| 	return CreateNoticeCtx(db.DefaultContext, tp, desc, args...) | ||||
| } | ||||
| 
 | ||||
| func createNotice(e db.Engine, tp NoticeType, desc string, args ...interface{}) error { | ||||
| // CreateNoticeCtx creates new system notice. | ||||
| func CreateNoticeCtx(ctx context.Context, tp NoticeType, desc string, args ...interface{}) error { | ||||
| 	if len(args) > 0 { | ||||
| 		desc = fmt.Sprintf(desc, args...) | ||||
| 	} | ||||
| @ -55,42 +56,43 @@ func createNotice(e db.Engine, tp NoticeType, desc string, args ...interface{}) | ||||
| 		Type:        tp, | ||||
| 		Description: desc, | ||||
| 	} | ||||
| 	_, err := e.Insert(n) | ||||
| 	return err | ||||
| 	return db.Insert(ctx, n) | ||||
| } | ||||
| 
 | ||||
| // CreateRepositoryNotice creates new system notice with type NoticeRepository. | ||||
| func CreateRepositoryNotice(desc string, args ...interface{}) error { | ||||
| 	return createNotice(db.GetEngine(db.DefaultContext), NoticeRepository, desc, args...) | ||||
| 	return CreateNoticeCtx(db.DefaultContext, NoticeRepository, desc, args...) | ||||
| } | ||||
| 
 | ||||
| // RemoveAllWithNotice removes all directories in given path and | ||||
| // creates a system notice when error occurs. | ||||
| func RemoveAllWithNotice(title, path string) { | ||||
| 	removeAllWithNotice(db.GetEngine(db.DefaultContext), title, path) | ||||
| 	RemoveAllWithNoticeCtx(db.DefaultContext, title, path) | ||||
| } | ||||
| 
 | ||||
| // RemoveStorageWithNotice removes a file from the storage and | ||||
| // creates a system notice when error occurs. | ||||
| func RemoveStorageWithNotice(bucket storage.ObjectStorage, title, path string) { | ||||
| 	removeStorageWithNotice(db.GetEngine(db.DefaultContext), bucket, title, path) | ||||
| 	removeStorageWithNotice(db.DefaultContext, bucket, title, path) | ||||
| } | ||||
| 
 | ||||
| func removeStorageWithNotice(e db.Engine, bucket storage.ObjectStorage, title, path string) { | ||||
| func removeStorageWithNotice(ctx context.Context, bucket storage.ObjectStorage, title, path string) { | ||||
| 	if err := bucket.Delete(path); err != nil { | ||||
| 		desc := fmt.Sprintf("%s [%s]: %v", title, path, err) | ||||
| 		log.Warn(title+" [%s]: %v", path, err) | ||||
| 		if err = createNotice(e, NoticeRepository, desc); err != nil { | ||||
| 		if err = CreateNoticeCtx(ctx, NoticeRepository, desc); err != nil { | ||||
| 			log.Error("CreateRepositoryNotice: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func removeAllWithNotice(e db.Engine, title, path string) { | ||||
| // RemoveAllWithNoticeCtx removes all directories in given path and | ||||
| // creates a system notice when error occurs. | ||||
| func RemoveAllWithNoticeCtx(ctx context.Context, title, path string) { | ||||
| 	if err := util.RemoveAll(path); err != nil { | ||||
| 		desc := fmt.Sprintf("%s [%s]: %v", title, path, err) | ||||
| 		log.Warn(title+" [%s]: %v", path, err) | ||||
| 		if err = createNotice(e, NoticeRepository, desc); err != nil { | ||||
| 		if err = CreateNoticeCtx(ctx, NoticeRepository, desc); err != nil { | ||||
| 			log.Error("CreateRepositoryNotice: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| @ -142,16 +144,3 @@ func DeleteNoticesByIDs(ids []int64) error { | ||||
| 		Delete(new(Notice)) | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| // GetAdminUser returns the first administrator | ||||
| func GetAdminUser() (*User, error) { | ||||
| 	var admin User | ||||
| 	has, err := db.GetEngine(db.DefaultContext).Where("is_admin=?", true).Get(&admin) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} else if !has { | ||||
| 		return nil, ErrUserNotExist{} | ||||
| 	} | ||||
| 
 | ||||
| 	return &admin, nil | ||||
| } | ||||
| @ -2,7 +2,7 @@ | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package models | ||||
| package admin | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| @ -5,6 +5,7 @@ | ||||
| package models | ||||
| 
 | ||||
| import ( | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 
 | ||||
| 	"xorm.io/builder" | ||||
| @ -127,7 +128,7 @@ func DeleteOrphanedIssues() error { | ||||
| 
 | ||||
| 	// Remove issue attachment files. | ||||
| 	for i := range attachmentPaths { | ||||
| 		removeAllWithNotice(db.GetEngine(db.DefaultContext), "Delete issue attachment", attachmentPaths[i]) | ||||
| 		admin_model.RemoveAllWithNoticeCtx(db.DefaultContext, "Delete issue attachment", attachmentPaths[i]) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @ -23,6 +23,7 @@ import ( | ||||
| 
 | ||||
| 	_ "image/jpeg" // Needed for jpeg support | ||||
| 
 | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/models/unit" | ||||
| 	"code.gitea.io/gitea/models/webhook" | ||||
| @ -133,7 +134,7 @@ func NewRepoContext() { | ||||
| 	loadRepoConfig() | ||||
| 	unit.LoadUnitConfig() | ||||
| 
 | ||||
| 	RemoveAllWithNotice("Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp")) | ||||
| 	admin_model.RemoveAllWithNotice("Clean up repository temporary data", filepath.Join(setting.AppDataPath, "tmp")) | ||||
| } | ||||
| 
 | ||||
| // RepositoryStatus defines the status of repository | ||||
| @ -1648,36 +1649,36 @@ func DeleteRepository(doer *User, uid, repoID int64) error { | ||||
| 
 | ||||
| 	// Remove repository files. | ||||
| 	repoPath := repo.RepoPath() | ||||
| 	removeAllWithNotice(db.GetEngine(db.DefaultContext), "Delete repository files", repoPath) | ||||
| 	admin_model.RemoveAllWithNotice("Delete repository files", repoPath) | ||||
| 
 | ||||
| 	// Remove wiki files | ||||
| 	if repo.HasWiki() { | ||||
| 		removeAllWithNotice(db.GetEngine(db.DefaultContext), "Delete repository wiki", repo.WikiPath()) | ||||
| 		admin_model.RemoveAllWithNotice("Delete repository wiki", repo.WikiPath()) | ||||
| 	} | ||||
| 
 | ||||
| 	// Remove archives | ||||
| 	for i := range archivePaths { | ||||
| 		removeStorageWithNotice(db.GetEngine(db.DefaultContext), storage.RepoArchives, "Delete repo archive file", archivePaths[i]) | ||||
| 		admin_model.RemoveStorageWithNotice(storage.RepoArchives, "Delete repo archive file", archivePaths[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	// Remove lfs objects | ||||
| 	for i := range lfsPaths { | ||||
| 		removeStorageWithNotice(db.GetEngine(db.DefaultContext), storage.LFS, "Delete orphaned LFS file", lfsPaths[i]) | ||||
| 		admin_model.RemoveStorageWithNotice(storage.LFS, "Delete orphaned LFS file", lfsPaths[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	// Remove issue attachment files. | ||||
| 	for i := range attachmentPaths { | ||||
| 		RemoveStorageWithNotice(storage.Attachments, "Delete issue attachment", attachmentPaths[i]) | ||||
| 		admin_model.RemoveStorageWithNotice(storage.Attachments, "Delete issue attachment", attachmentPaths[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	// Remove release attachment files. | ||||
| 	for i := range releaseAttachments { | ||||
| 		RemoveStorageWithNotice(storage.Attachments, "Delete release attachment", releaseAttachments[i]) | ||||
| 		admin_model.RemoveStorageWithNotice(storage.Attachments, "Delete release attachment", releaseAttachments[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	// Remove attachment with no issue_id and release_id. | ||||
| 	for i := range newAttachmentPaths { | ||||
| 		RemoveStorageWithNotice(storage.Attachments, "Delete issue attachment", attachmentPaths[i]) | ||||
| 		admin_model.RemoveStorageWithNotice(storage.Attachments, "Delete issue attachment", attachmentPaths[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	if len(repo.Avatar) > 0 { | ||||
|  | ||||
| @ -22,6 +22,7 @@ import ( | ||||
| 
 | ||||
| 	_ "image/jpeg" // Needed for jpeg support | ||||
| 
 | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/models/login" | ||||
| 	"code.gitea.io/gitea/models/unit" | ||||
| @ -1148,7 +1149,8 @@ func deleteBeans(e db.Engine, beans ...interface{}) (err error) { | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func deleteUser(e db.Engine, u *User) error { | ||||
| func deleteUser(ctx context.Context, u *User) error { | ||||
| 	e := db.GetEngine(ctx) | ||||
| 	// Note: A user owns any repository or belongs to any organization | ||||
| 	//	cannot perform delete operation. | ||||
| 
 | ||||
| @ -1304,7 +1306,7 @@ func deleteUser(e db.Engine, u *User) error { | ||||
| 	path := UserPath(u.Name) | ||||
| 	if err = util.RemoveAll(path); err != nil { | ||||
| 		err = fmt.Errorf("Failed to RemoveAll %s: %v", path, err) | ||||
| 		_ = createNotice(e, NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) | ||||
| 		_ = admin_model.CreateNoticeCtx(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| @ -1312,7 +1314,7 @@ func deleteUser(e db.Engine, u *User) error { | ||||
| 		avatarPath := u.CustomAvatarRelativePath() | ||||
| 		if err = storage.Avatars.Delete(avatarPath); err != nil { | ||||
| 			err = fmt.Errorf("Failed to remove %s: %v", avatarPath, err) | ||||
| 			_ = createNotice(e, NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) | ||||
| 			_ = admin_model.CreateNoticeCtx(ctx, admin_model.NoticeTask, fmt.Sprintf("delete user '%s': %v", u.Name, err)) | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| @ -1328,18 +1330,18 @@ func DeleteUser(u *User) (err error) { | ||||
| 		return fmt.Errorf("%s is an organization not a user", u.Name) | ||||
| 	} | ||||
| 
 | ||||
| 	sess := db.NewSession(db.DefaultContext) | ||||
| 	defer sess.Close() | ||||
| 	if err = sess.Begin(); err != nil { | ||||
| 	ctx, committer, err := db.TxContext() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	defer committer.Close() | ||||
| 
 | ||||
| 	if err = deleteUser(sess, u); err != nil { | ||||
| 	if err = deleteUser(ctx, u); err != nil { | ||||
| 		// Note: don't wrapper error here. | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	return sess.Commit() | ||||
| 	return committer.Commit() | ||||
| } | ||||
| 
 | ||||
| // DeleteInactiveUsers deletes all inactive users and email addresses. | ||||
| @ -1825,3 +1827,16 @@ func GetUserByOpenID(uri string) (*User, error) { | ||||
| 
 | ||||
| 	return nil, ErrUserNotExist{0, uri, 0} | ||||
| } | ||||
| 
 | ||||
| // GetAdminUser returns the first administrator | ||||
| func GetAdminUser() (*User, error) { | ||||
| 	var admin User | ||||
| 	has, err := db.GetEngine(db.DefaultContext).Where("is_admin=?", true).Get(&admin) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} else if !has { | ||||
| 		return nil, ErrUserNotExist{} | ||||
| 	} | ||||
| 
 | ||||
| 	return &admin, nil | ||||
| } | ||||
|  | ||||
| @ -11,6 +11,7 @@ import ( | ||||
| 	"time" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| @ -38,7 +39,7 @@ func GitFsck(ctx context.Context, timeout time.Duration, args []string) error { | ||||
| 			repoPath := repo.RepoPath() | ||||
| 			if err := git.Fsck(ctx, repoPath, timeout, args...); err != nil { | ||||
| 				log.Warn("Failed to health check repository (%v): %v", repo, err) | ||||
| 				if err = models.CreateRepositoryNotice("Failed to health check repository (%s): %v", repo.FullName(), err); err != nil { | ||||
| 				if err = admin_model.CreateRepositoryNotice("Failed to health check repository (%s): %v", repo.FullName(), err); err != nil { | ||||
| 					log.Error("CreateRepositoryNotice: %v", err) | ||||
| 				} | ||||
| 			} | ||||
| @ -87,7 +88,7 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro | ||||
| 			if err != nil { | ||||
| 				log.Error("Repository garbage collection failed for %v. Stdout: %s\nError: %v", repo, stdout, err) | ||||
| 				desc := fmt.Sprintf("Repository garbage collection failed for %s. Stdout: %s\nError: %v", repo.RepoPath(), stdout, err) | ||||
| 				if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 				if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 					log.Error("CreateRepositoryNotice: %v", err) | ||||
| 				} | ||||
| 				return fmt.Errorf("Repository garbage collection failed in repo: %s: Error: %v", repo.FullName(), err) | ||||
| @ -97,7 +98,7 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...string) erro | ||||
| 			if err := repo.UpdateSize(db.DefaultContext); err != nil { | ||||
| 				log.Error("Updating size as part of garbage collection failed for %v. Stdout: %s\nError: %v", repo, stdout, err) | ||||
| 				desc := fmt.Sprintf("Updating size as part of garbage collection failed for %s. Stdout: %s\nError: %v", repo.RepoPath(), stdout, err) | ||||
| 				if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 				if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 					log.Error("CreateRepositoryNotice: %v", err) | ||||
| 				} | ||||
| 				return fmt.Errorf("Updating size as part of garbage collection failed in repo: %s: Error: %v", repo.FullName(), err) | ||||
| @ -139,7 +140,7 @@ func gatherMissingRepoRecords(ctx context.Context) ([]*models.Repository, error) | ||||
| 		if strings.HasPrefix(err.Error(), "Aborted gathering missing repo") { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		if err2 := models.CreateRepositoryNotice("gatherMissingRepoRecords: %v", err); err2 != nil { | ||||
| 		if err2 := admin_model.CreateRepositoryNotice("gatherMissingRepoRecords: %v", err); err2 != nil { | ||||
| 			log.Error("CreateRepositoryNotice: %v", err2) | ||||
| 		} | ||||
| 		return nil, err | ||||
| @ -167,7 +168,7 @@ func DeleteMissingRepositories(ctx context.Context, doer *models.User) error { | ||||
| 		log.Trace("Deleting %d/%d...", repo.OwnerID, repo.ID) | ||||
| 		if err := models.DeleteRepository(doer, repo.OwnerID, repo.ID); err != nil { | ||||
| 			log.Error("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err) | ||||
| 			if err2 := models.CreateRepositoryNotice("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err); err2 != nil { | ||||
| 			if err2 := admin_model.CreateRepositoryNotice("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err); err2 != nil { | ||||
| 				log.Error("CreateRepositoryNotice: %v", err) | ||||
| 			} | ||||
| 		} | ||||
| @ -195,7 +196,7 @@ func ReinitMissingRepositories(ctx context.Context) error { | ||||
| 		log.Trace("Initializing %d/%d...", repo.OwnerID, repo.ID) | ||||
| 		if err := git.InitRepository(repo.RepoPath(), true); err != nil { | ||||
| 			log.Error("Unable (re)initialize repository %d at %s. Error: %v", repo.ID, repo.RepoPath(), err) | ||||
| 			if err2 := models.CreateRepositoryNotice("InitRepository [%d]: %v", repo.ID, err); err2 != nil { | ||||
| 			if err2 := admin_model.CreateRepositoryNotice("InitRepository [%d]: %v", repo.ID, err); err2 != nil { | ||||
| 				log.Error("CreateRepositoryNotice: %v", err2) | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| @ -9,7 +9,7 @@ import ( | ||||
| 	"net/http" | ||||
| 	"strconv" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| @ -26,13 +26,13 @@ func Notices(ctx *context.Context) { | ||||
| 	ctx.Data["PageIsAdmin"] = true | ||||
| 	ctx.Data["PageIsAdminNotices"] = true | ||||
| 
 | ||||
| 	total := models.CountNotices() | ||||
| 	total := admin_model.CountNotices() | ||||
| 	page := ctx.FormInt("page") | ||||
| 	if page <= 1 { | ||||
| 		page = 1 | ||||
| 	} | ||||
| 
 | ||||
| 	notices, err := models.Notices(page, setting.UI.Admin.NoticePagingNum) | ||||
| 	notices, err := admin_model.Notices(page, setting.UI.Admin.NoticePagingNum) | ||||
| 	if err != nil { | ||||
| 		ctx.ServerError("Notices", err) | ||||
| 		return | ||||
| @ -57,7 +57,7 @@ func DeleteNotices(ctx *context.Context) { | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if err := models.DeleteNoticesByIDs(ids); err != nil { | ||||
| 	if err := admin_model.DeleteNoticesByIDs(ids); err != nil { | ||||
| 		ctx.Flash.Error("DeleteNoticesByIDs: " + err.Error()) | ||||
| 		ctx.Status(500) | ||||
| 	} else { | ||||
| @ -68,7 +68,7 @@ func DeleteNotices(ctx *context.Context) { | ||||
| 
 | ||||
| // EmptyNotices delete all the notices | ||||
| func EmptyNotices(ctx *context.Context) { | ||||
| 	if err := models.DeleteNotices(0, 0); err != nil { | ||||
| 	if err := admin_model.DeleteNotices(0, 0); err != nil { | ||||
| 		ctx.ServerError("DeleteNotices", err) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| @ -7,7 +7,7 @@ package repo | ||||
| import ( | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| ) | ||||
| @ -23,7 +23,7 @@ func SetEditorconfigIfExists(ctx *context.Context) { | ||||
| 
 | ||||
| 	if err != nil && !git.IsErrNotExist(err) { | ||||
| 		description := fmt.Sprintf("Error while getting .editorconfig file: %v", err) | ||||
| 		if err := models.CreateRepositoryNotice(description); err != nil { | ||||
| 		if err := admin_model.CreateRepositoryNotice(description); err != nil { | ||||
| 			ctx.ServerError("ErrCreatingReporitoryNotice", err) | ||||
| 		} | ||||
| 		return | ||||
|  | ||||
| @ -11,6 +11,7 @@ import ( | ||||
| 	"sync" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/modules/graceful" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| @ -89,18 +90,18 @@ func (t *Task) RunWithUser(doer *models.User, config Config) { | ||||
| 		if err := t.fun(ctx, doer, config); err != nil { | ||||
| 			if db.IsErrCancelled(err) { | ||||
| 				message := err.(db.ErrCancelled).Message | ||||
| 				if err := models.CreateNotice(models.NoticeTask, config.FormatMessage(t.Name, "aborted", doer, message)); err != nil { | ||||
| 				if err := admin_model.CreateNotice(admin_model.NoticeTask, config.FormatMessage(t.Name, "aborted", doer, message)); err != nil { | ||||
| 					log.Error("CreateNotice: %v", err) | ||||
| 				} | ||||
| 				return | ||||
| 			} | ||||
| 			if err := models.CreateNotice(models.NoticeTask, config.FormatMessage(t.Name, "error", doer, err)); err != nil { | ||||
| 			if err := admin_model.CreateNotice(admin_model.NoticeTask, config.FormatMessage(t.Name, "error", doer, err)); err != nil { | ||||
| 				log.Error("CreateNotice: %v", err) | ||||
| 			} | ||||
| 			return | ||||
| 		} | ||||
| 		if config.DoNoticeOnSuccess() { | ||||
| 			if err := models.CreateNotice(models.NoticeTask, config.FormatMessage(t.Name, "finished", doer)); err != nil { | ||||
| 			if err := admin_model.CreateNotice(admin_model.NoticeTask, config.FormatMessage(t.Name, "finished", doer)); err != nil { | ||||
| 				log.Error("CreateNotice: %v", err) | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| @ -15,7 +15,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	base "code.gitea.io/gitea/modules/migration" | ||||
| 	"code.gitea.io/gitea/modules/proxy" | ||||
| @ -417,7 +417,7 @@ func (g *GiteaDownloader) GetIssues(page, perPage int) ([]*base.Issue, bool, err | ||||
| 		reactions, err := g.getIssueReactions(issue.Index) | ||||
| 		if err != nil { | ||||
| 			log.Warn("Unable to load reactions during migrating issue #%d to %s/%s. Error: %v", issue.Index, g.repoOwner, g.repoName, err) | ||||
| 			if err2 := models.CreateRepositoryNotice( | ||||
| 			if err2 := admin_model.CreateRepositoryNotice( | ||||
| 				fmt.Sprintf("Unable to load reactions during migrating issue #%d to %s/%s. Error: %v", issue.Index, g.repoOwner, g.repoName, err)); err2 != nil { | ||||
| 				log.Error("create repository notice failed: ", err2) | ||||
| 			} | ||||
| @ -479,7 +479,7 @@ func (g *GiteaDownloader) GetComments(opts base.GetCommentOptions) ([]*base.Comm | ||||
| 			reactions, err := g.getCommentReactions(comment.ID) | ||||
| 			if err != nil { | ||||
| 				log.Warn("Unable to load comment reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err) | ||||
| 				if err2 := models.CreateRepositoryNotice( | ||||
| 				if err2 := admin_model.CreateRepositoryNotice( | ||||
| 					fmt.Sprintf("Unable to load reactions during migrating issue #%d for comment %d to %s/%s. Error: %v", opts.Context.ForeignID(), comment.ID, g.repoOwner, g.repoName, err)); err2 != nil { | ||||
| 					log.Error("create repository notice failed: ", err2) | ||||
| 				} | ||||
| @ -557,7 +557,7 @@ func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullReques | ||||
| 		reactions, err := g.getIssueReactions(pr.Index) | ||||
| 		if err != nil { | ||||
| 			log.Warn("Unable to load reactions during migrating pull #%d to %s/%s. Error: %v", pr.Index, g.repoOwner, g.repoName, err) | ||||
| 			if err2 := models.CreateRepositoryNotice( | ||||
| 			if err2 := admin_model.CreateRepositoryNotice( | ||||
| 				fmt.Sprintf("Unable to load reactions during migrating pull #%d to %s/%s. Error: %v", pr.Index, g.repoOwner, g.repoName, err)); err2 != nil { | ||||
| 				log.Error("create repository notice failed: ", err2) | ||||
| 			} | ||||
|  | ||||
| @ -14,6 +14,7 @@ import ( | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| 	"code.gitea.io/gitea/modules/matchlist" | ||||
| 	base "code.gitea.io/gitea/modules/migration" | ||||
| @ -122,7 +123,7 @@ func MigrateRepository(ctx context.Context, doer *models.User, ownerName string, | ||||
| 		if err1 := uploader.Rollback(); err1 != nil { | ||||
| 			log.Error("rollback failed: %v", err1) | ||||
| 		} | ||||
| 		if err2 := models.CreateRepositoryNotice(fmt.Sprintf("Migrate repository from %s failed: %v", opts.OriginalURL, err)); err2 != nil { | ||||
| 		if err2 := admin_model.CreateRepositoryNotice(fmt.Sprintf("Migrate repository from %s failed: %v", opts.OriginalURL, err)); err2 != nil { | ||||
| 			log.Error("create respotiry notice failed: ", err2) | ||||
| 		} | ||||
| 		return nil, err | ||||
|  | ||||
| @ -11,6 +11,7 @@ import ( | ||||
| 	"time" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/modules/cache" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| @ -170,7 +171,7 @@ func pruneBrokenReferences(ctx context.Context, | ||||
| 
 | ||||
| 		log.Error("Failed to prune mirror repository %s%-v references:\nStdout: %s\nStderr: %s\nErr: %v", wiki, m.Repo, stdoutMessage, stderrMessage, pruneErr) | ||||
| 		desc := fmt.Sprintf("Failed to prune mirror repository %s'%s' references: %s", wiki, repoPath, stderrMessage) | ||||
| 		if err := models.CreateRepositoryNotice(desc); err != nil { | ||||
| 		if err := admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 			log.Error("CreateRepositoryNotice: %v", err) | ||||
| 		} | ||||
| 		// this if will only be reached on a successful prune so try to get the mirror again | ||||
| @ -239,7 +240,7 @@ func runSync(ctx context.Context, m *models.Mirror) ([]*mirrorSyncResult, bool) | ||||
| 		if err != nil { | ||||
| 			log.Error("Failed to update mirror repository %-v:\nStdout: %s\nStderr: %s\nErr: %v", m.Repo, stdoutMessage, stderrMessage, err) | ||||
| 			desc := fmt.Sprintf("Failed to update mirror repository '%s': %s", repoPath, stderrMessage) | ||||
| 			if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 			if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 				log.Error("CreateRepositoryNotice: %v", err) | ||||
| 			} | ||||
| 			return nil, false | ||||
| @ -323,7 +324,7 @@ func runSync(ctx context.Context, m *models.Mirror) ([]*mirrorSyncResult, bool) | ||||
| 			if err != nil { | ||||
| 				log.Error("Failed to update mirror repository wiki %-v:\nStdout: %s\nStderr: %s\nErr: %v", m.Repo, stdoutMessage, stderrMessage, err) | ||||
| 				desc := fmt.Sprintf("Failed to update mirror repository wiki '%s': %s", wikiPath, stderrMessage) | ||||
| 				if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 				if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 					log.Error("CreateRepositoryNotice: %v", err) | ||||
| 				} | ||||
| 				return nil, false | ||||
| @ -524,7 +525,7 @@ func checkAndUpdateEmptyRepository(m *models.Mirror, gitRepo *git.Repository, re | ||||
| 			if !git.IsErrUnsupportedVersion(err) { | ||||
| 				log.Error("Failed to update default branch of underlying git repository %-v. Error: %v", m.Repo, err) | ||||
| 				desc := fmt.Sprintf("Failed to uupdate default branch of underlying git repository '%s': %v", m.Repo.RepoPath(), err) | ||||
| 				if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 				if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 					log.Error("CreateRepositoryNotice: %v", err) | ||||
| 				} | ||||
| 				return false | ||||
| @ -535,7 +536,7 @@ func checkAndUpdateEmptyRepository(m *models.Mirror, gitRepo *git.Repository, re | ||||
| 		if err := models.UpdateRepositoryCols(m.Repo, "default_branch", "is_empty"); err != nil { | ||||
| 			log.Error("Failed to update default branch of repository %-v. Error: %v", m.Repo, err) | ||||
| 			desc := fmt.Sprintf("Failed to uupdate default branch of repository '%s': %v", m.Repo.RepoPath(), err) | ||||
| 			if err = models.CreateRepositoryNotice(desc); err != nil { | ||||
| 			if err = admin_model.CreateRepositoryNotice(desc); err != nil { | ||||
| 				log.Error("CreateRepositoryNotice: %v", err) | ||||
| 			} | ||||
| 			return false | ||||
|  | ||||
| @ -12,6 +12,7 @@ import ( | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	admin_model "code.gitea.io/gitea/models/admin" | ||||
| 	"code.gitea.io/gitea/models/unit" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/log" | ||||
| @ -374,6 +375,6 @@ func DeleteWiki(repo *models.Repository) error { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	models.RemoveAllWithNotice("Delete repository wiki", repo.WikiPath()) | ||||
| 	admin_model.RemoveAllWithNotice("Delete repository wiki", repo.WikiPath()) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 GitHub
							GitHub