// Copyright 2025 The Forgejo Authors. All rights reserved. // SPDX-License-Identifier: GPL-3.0-or-later package forgejo_migrations //nolint:revive import ( "xorm.io/xorm" ) func FixWikiUnitDefaultPermission(x *xorm.Engine) error { // Type is Unit's Type type Type int // Enumerate all the unit types const ( TypeInvalid Type = iota // 0 invalid TypeCode // 1 code TypeIssues // 2 issues TypePullRequests // 3 PRs TypeReleases // 4 Releases TypeWiki // 5 Wiki TypeExternalWiki // 6 ExternalWiki TypeExternalTracker // 7 ExternalTracker TypeProjects // 8 Projects TypePackages // 9 Packages TypeActions // 10 Actions ) // RepoUnitAccessMode specifies the users access mode to a repo unit type UnitAccessMode int const ( // UnitAccessModeUnset - no unit mode set UnitAccessModeUnset UnitAccessMode = iota // 0 // UnitAccessModeNone no access UnitAccessModeNone // 1 // UnitAccessModeRead read access UnitAccessModeRead // 2 // UnitAccessModeWrite write access UnitAccessModeWrite // 3 ) _ = UnitAccessModeNone _ = UnitAccessModeWrite type RepoUnit struct { DefaultPermissions UnitAccessMode `xorm:"NOT NULL DEFAULT 0"` } _, err := x.Where("type = ?", TypeWiki). Where("default_permissions = ?", UnitAccessModeRead). Cols("default_permissions"). Update(RepoUnit{ DefaultPermissions: UnitAccessModeUnset, }) return err }