2020-02-15 05:59:43 -03:00
// Copyright 2020 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2020-02-15 05:59:43 -03:00
package models
import (
"fmt"
"strings"
2021-09-19 19:49:59 +08:00
"code.gitea.io/gitea/models/db"
2022-05-11 18:09:36 +08:00
access_model "code.gitea.io/gitea/models/perm/access"
2021-12-10 09:27:50 +08:00
repo_model "code.gitea.io/gitea/models/repo"
2020-02-15 05:59:43 -03:00
)
// GetYamlFixturesAccess returns a string containing the contents
// for the access table, as recalculated using repo.RecalculateAccesses()
func GetYamlFixturesAccess ( ) ( string , error ) {
2021-12-10 09:27:50 +08:00
repos := make ( [ ] * repo_model . Repository , 0 , 50 )
2021-09-23 16:45:36 +01:00
if err := db . GetEngine ( db . DefaultContext ) . Find ( & repos ) ; err != nil {
2020-02-15 05:59:43 -03:00
return "" , err
}
for _ , repo := range repos {
2022-11-19 09:12:33 +01:00
repo . MustOwner ( db . DefaultContext )
2022-05-11 18:09:36 +08:00
if err := access_model . RecalculateAccesses ( db . DefaultContext , repo ) ; err != nil {
2020-02-15 05:59:43 -03:00
return "" , err
}
}
var b strings . Builder
2022-05-11 18:09:36 +08:00
accesses := make ( [ ] * access_model . Access , 0 , 200 )
2021-09-23 16:45:36 +01:00
if err := db . GetEngine ( db . DefaultContext ) . OrderBy ( "user_id, repo_id" ) . Find ( & accesses ) ; err != nil {
2020-02-15 05:59:43 -03:00
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 )
fmt . Fprintf ( & b , "\n" )
}
return b . String ( ) , nil
}