2020-02-15 11:59:43 +03:00
// Copyright 2020 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2020-02-15 11:59:43 +03:00
package models
import (
2023-10-15 18:46:06 +03:00
"context"
2020-02-15 11:59:43 +03:00
"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()
2023-10-15 18:46:06 +03:00
func GetYamlFixturesAccess ( ctx context . Context ) ( string , error ) {
2021-12-10 04:27:50 +03:00
repos := make ( [ ] * repo_model . Repository , 0 , 50 )
2023-10-15 18:46:06 +03:00
if err := db . GetEngine ( ctx ) . Find ( & repos ) ; err != nil {
2020-02-15 11:59:43 +03:00
return "" , err
}
for _ , repo := range repos {
2023-10-15 18:46:06 +03:00
repo . MustOwner ( ctx )
if err := access_model . RecalculateAccesses ( ctx , 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 )
2023-10-15 18:46:06 +03:00
if err := db . GetEngine ( ctx ) . 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 )
2023-09-27 06:30:03 +03:00
if i < len ( accesses ) - 1 {
fmt . Fprintf ( & b , "\n" )
}
2020-02-15 11:59:43 +03:00
}
return b . String ( ) , nil
}