mirror of https://github.com/go-gitea/gitea
Add migration to fix external unit access mode of owner/admin team (#24117)
Fix the incorrect migration in #23675 and #24012 External Unit (Tracker and Wiki) access mode should be `read` in owner/admin team.pull/24133/head^2
parent
b4e952545b
commit
fa3495183b
@ -0,0 +1,49 @@ |
|||||||
|
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package v1_20 //nolint
|
||||||
|
|
||||||
|
import ( |
||||||
|
"code.gitea.io/gitea/modules/log" |
||||||
|
|
||||||
|
"xorm.io/xorm" |
||||||
|
) |
||||||
|
|
||||||
|
func FixExternalTrackerAndExternalWikiAccessModeInOwnerAndAdminTeam(x *xorm.Engine) error { |
||||||
|
type UnitType int |
||||||
|
type AccessMode int |
||||||
|
|
||||||
|
type TeamUnit struct { |
||||||
|
ID int64 `xorm:"pk autoincr"` |
||||||
|
Type UnitType `xorm:"UNIQUE(s)"` |
||||||
|
AccessMode AccessMode |
||||||
|
} |
||||||
|
|
||||||
|
const ( |
||||||
|
// AccessModeRead read access
|
||||||
|
AccessModeRead = 1 |
||||||
|
|
||||||
|
// Unit Type
|
||||||
|
TypeExternalWiki = 6 |
||||||
|
TypeExternalTracker = 7 |
||||||
|
) |
||||||
|
|
||||||
|
sess := x.NewSession() |
||||||
|
defer sess.Close() |
||||||
|
|
||||||
|
if err := sess.Begin(); err != nil { |
||||||
|
return err |
||||||
|
} |
||||||
|
|
||||||
|
count, err := sess.Table("team_unit"). |
||||||
|
Where("type IN (?, ?) AND access_mode > ?", TypeExternalWiki, TypeExternalTracker, AccessModeRead). |
||||||
|
Update(&TeamUnit{ |
||||||
|
AccessMode: AccessModeRead, |
||||||
|
}) |
||||||
|
if err != nil { |
||||||
|
return err |
||||||
|
} |
||||||
|
log.Debug("Updated %d ExternalTracker and ExternalWiki access mode to belong to owner and admin", count) |
||||||
|
|
||||||
|
return sess.Commit() |
||||||
|
} |
Loading…
Reference in new issue