mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Add Doctor FixWrongUserType (#14522)
* Add Doctor FixWrongUserType * use NoAutoTime
This commit is contained in:
		@@ -291,7 +291,17 @@ func CountNullArchivedRepository() (int64, error) {
 | 
			
		||||
 | 
			
		||||
// FixNullArchivedRepository sets is_archived to false where it is null
 | 
			
		||||
func FixNullArchivedRepository() (int64, error) {
 | 
			
		||||
	return x.Where(builder.IsNull{"is_archived"}).Cols("is_archived").Update(&Repository{
 | 
			
		||||
	return x.Where(builder.IsNull{"is_archived"}).Cols("is_archived").NoAutoTime().Update(&Repository{
 | 
			
		||||
		IsArchived: false,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CountWrongUserType count OrgUser who have wrong type
 | 
			
		||||
func CountWrongUserType() (int64, error) {
 | 
			
		||||
	return x.Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Count(new(User))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FixWrongUserType fix OrgUser who have wrong type
 | 
			
		||||
func FixWrongUserType() (int64, error) {
 | 
			
		||||
	return x.Where(builder.Eq{"type": 0}.And(builder.Neq{"num_teams": 0})).Cols("type").NoAutoTime().Update(&User{Type: 1})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										40
									
								
								modules/doctor/usertype.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								modules/doctor/usertype.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
// 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 doctor
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func checkUserType(logger log.Logger, autofix bool) error {
 | 
			
		||||
	count, err := models.CountWrongUserType()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		logger.Critical("Error: %v whilst counting wrong user types")
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if count > 0 {
 | 
			
		||||
		if autofix {
 | 
			
		||||
			if count, err = models.FixWrongUserType(); err != nil {
 | 
			
		||||
				logger.Critical("Error: %v whilst fixing wrong user types")
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			logger.Info("%d users with wrong type fixed", count)
 | 
			
		||||
		} else {
 | 
			
		||||
			logger.Warn("%d users with wrong type exist", count)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	Register(&Check{
 | 
			
		||||
		Title:     "Check if user with wrong type exist",
 | 
			
		||||
		Name:      "check-user-type",
 | 
			
		||||
		IsDefault: true,
 | 
			
		||||
		Run:       checkUserType,
 | 
			
		||||
		Priority:  3,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user