Files
APIPark/resources/access/access_test.go
T
2024-08-12 21:38:09 +08:00

58 lines
1.1 KiB
Go

package access
import (
"fmt"
"os"
"sort"
"strings"
"testing"
"github.com/eolinker/go-common/access"
)
func TestPrintlnRoleAccess(t *testing.T) {
system, has := access.GetPermit("system")
if has {
keys := system.AccessKeys()
sort.Strings(keys)
for _, k := range keys {
fmt.Printf("- %s\n", k)
}
}
team, has := access.GetPermit("team")
if has {
keys := team.AccessKeys()
sort.Strings(keys)
for _, k := range keys {
fmt.Printf("- %s\n", k)
}
}
}
func TestPrintlnAccessAPIs(t *testing.T) {
builder := &strings.Builder{}
printAccesses("system", builder)
printAccesses("team", builder)
os.WriteFile("permit.yaml", []byte(builder.String()), 0644)
}
func printAccesses(group string, builder *strings.Builder) {
handler, has := access.GetPermit(group)
if has {
keys := handler.AccessKeys()
sort.Strings(keys)
builder.WriteString(fmt.Sprintf("%s:\n", group))
for _, key := range keys {
apis, err := handler.GetPermits(key)
if err != nil {
continue
}
builder.WriteString(fmt.Sprintf(" %s:\n", key))
for _, api := range apis {
builder.WriteString(fmt.Sprintf(" - %s\n", api))
}
}
}
return
}