From e68b9d00a6e05b3a941f63ffb696f91e554ac5ec Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 18 Oct 2024 20:33:49 +0200 Subject: Adding upstream version 9.0.3. Signed-off-by: Daniel Baumann --- models/fixture_generation.go | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 models/fixture_generation.go (limited to 'models/fixture_generation.go') diff --git a/models/fixture_generation.go b/models/fixture_generation.go new file mode 100644 index 0000000..6234cae --- /dev/null +++ b/models/fixture_generation.go @@ -0,0 +1,50 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package models + +import ( + "context" + "fmt" + "strings" + + "code.gitea.io/gitea/models/db" + access_model "code.gitea.io/gitea/models/perm/access" + repo_model "code.gitea.io/gitea/models/repo" +) + +// GetYamlFixturesAccess returns a string containing the contents +// for the access table, as recalculated using repo.RecalculateAccesses() +func GetYamlFixturesAccess(ctx context.Context) (string, error) { + repos := make([]*repo_model.Repository, 0, 50) + if err := db.GetEngine(ctx).Find(&repos); err != nil { + return "", err + } + + for _, repo := range repos { + repo.MustOwner(ctx) + if err := access_model.RecalculateAccesses(ctx, repo); err != nil { + return "", err + } + } + + var b strings.Builder + + accesses := make([]*access_model.Access, 0, 200) + if err := db.GetEngine(ctx).OrderBy("user_id, repo_id").Find(&accesses); err != nil { + return "", err + } + + for i, a := range accesses { + fmt.Fprintf(&b, "-\n") + fmt.Fprintf(&b, " id: %d\n", i+1) + fmt.Fprintf(&b, " user_id: %d\n", a.UserID) + fmt.Fprintf(&b, " repo_id: %d\n", a.RepoID) + fmt.Fprintf(&b, " mode: %d\n", a.Mode) + if i < len(accesses)-1 { + fmt.Fprintf(&b, "\n") + } + } + + return b.String(), nil +} -- cgit v1.2.3