code.gitea.io/gitea@v1.22.3/models/fixture_generation.go (about) 1 // Copyright 2020 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package models 5 6 import ( 7 "context" 8 "fmt" 9 "strings" 10 11 "code.gitea.io/gitea/models/db" 12 access_model "code.gitea.io/gitea/models/perm/access" 13 repo_model "code.gitea.io/gitea/models/repo" 14 ) 15 16 // GetYamlFixturesAccess returns a string containing the contents 17 // for the access table, as recalculated using repo.RecalculateAccesses() 18 func GetYamlFixturesAccess(ctx context.Context) (string, error) { 19 repos := make([]*repo_model.Repository, 0, 50) 20 if err := db.GetEngine(ctx).Find(&repos); err != nil { 21 return "", err 22 } 23 24 for _, repo := range repos { 25 repo.MustOwner(ctx) 26 if err := access_model.RecalculateAccesses(ctx, repo); err != nil { 27 return "", err 28 } 29 } 30 31 var b strings.Builder 32 33 accesses := make([]*access_model.Access, 0, 200) 34 if err := db.GetEngine(ctx).OrderBy("user_id, repo_id").Find(&accesses); err != nil { 35 return "", err 36 } 37 38 for i, a := range accesses { 39 fmt.Fprintf(&b, "-\n") 40 fmt.Fprintf(&b, " id: %d\n", i+1) 41 fmt.Fprintf(&b, " user_id: %d\n", a.UserID) 42 fmt.Fprintf(&b, " repo_id: %d\n", a.RepoID) 43 fmt.Fprintf(&b, " mode: %d\n", a.Mode) 44 if i < len(accesses)-1 { 45 fmt.Fprintf(&b, "\n") 46 } 47 } 48 49 return b.String(), nil 50 }