code.gitea.io/gitea@v1.21.7/models/migrations/v1_20/v253.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package v1_20 //nolint 5 6 import ( 7 "code.gitea.io/gitea/modules/log" 8 9 "xorm.io/xorm" 10 ) 11 12 func FixExternalTrackerAndExternalWikiAccessModeInOwnerAndAdminTeam(x *xorm.Engine) error { 13 type UnitType int 14 type AccessMode int 15 16 type TeamUnit struct { 17 ID int64 `xorm:"pk autoincr"` 18 Type UnitType `xorm:"UNIQUE(s)"` 19 AccessMode AccessMode 20 } 21 22 const ( 23 // AccessModeRead read access 24 AccessModeRead = 1 25 26 // Unit Type 27 TypeExternalWiki = 6 28 TypeExternalTracker = 7 29 ) 30 31 sess := x.NewSession() 32 defer sess.Close() 33 34 if err := sess.Begin(); err != nil { 35 return err 36 } 37 38 count, err := sess.Table("team_unit"). 39 Where("type IN (?, ?) AND access_mode > ?", TypeExternalWiki, TypeExternalTracker, AccessModeRead). 40 Update(&TeamUnit{ 41 AccessMode: AccessModeRead, 42 }) 43 if err != nil { 44 return err 45 } 46 log.Debug("Updated %d ExternalTracker and ExternalWiki access mode to belong to owner and admin", count) 47 48 return sess.Commit() 49 }