2020-02-15 11:59:43 +03:00
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package models
import (
"fmt"
"strings"
2021-09-19 14:49:59 +03:00
"code.gitea.io/gitea/models/db"
2022-05-11 13:09:36 +03:00
access_model "code.gitea.io/gitea/models/perm/access"
2021-12-10 04:27:50 +03:00
repo_model "code.gitea.io/gitea/models/repo"
2020-02-15 11: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 04:27:50 +03:00
repos := make ( [ ] * repo_model . Repository , 0 , 50 )
2021-09-23 18:45:36 +03:00
if err := db . GetEngine ( db . DefaultContext ) . Find ( & repos ) ; err != nil {
2020-02-15 11:59:43 +03:00
return "" , err
}
for _ , repo := range repos {
repo . MustOwner ( )
2022-05-11 13:09:36 +03:00
if err := access_model . RecalculateAccesses ( db . DefaultContext , repo ) ; err != nil {
2020-02-15 11:59:43 +03:00
return "" , err
}
}
var b strings . Builder
2022-05-11 13:09:36 +03:00
accesses := make ( [ ] * access_model . Access , 0 , 200 )
2021-09-23 18:45:36 +03:00
if err := db . GetEngine ( db . DefaultContext ) . OrderBy ( "user_id, repo_id" ) . Find ( & accesses ) ; err != nil {
2020-02-15 11: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
}