[feature/oidc] Add support for very basic RBAC (#2642)

* Add support for very basic RBAC

* Add some small tests for allowedGroup and adminGroup

* Switch to table-driven tests
This commit is contained in:
9p4
2024-02-27 10:07:29 -05:00
committed by GitHub
parent feb6abbab2
commit 9bf448be7a
8 changed files with 130 additions and 7 deletions

View File

@ -0,0 +1,45 @@
package auth
import (
"testing"
"github.com/superseriousbusiness/gotosocial/testrig"
)
func TestAdminGroup(t *testing.T) {
testrig.InitTestConfig()
for _, test := range []struct {
name string
groups []string
expected bool
}{
{name: "not in admin group", groups: []string{"group1", "group2", "allowedRole"}, expected: false},
{name: "in admin group", groups: []string{"group1", "group2", "adminRole"}, expected: true},
} {
test := test // loopvar capture
t.Run(test.name, func(t *testing.T) {
if got := adminGroup(test.groups); got != test.expected {
t.Fatalf("got: %t, wanted: %t", got, test.expected)
}
})
}
}
func TestAllowedGroup(t *testing.T) {
testrig.InitTestConfig()
for _, test := range []struct {
name string
groups []string
expected bool
}{
{name: "not in allowed group", groups: []string{"group1", "group2", "adminRole"}, expected: false},
{name: "in allowed group", groups: []string{"group1", "group2", "allowedRole"}, expected: true},
} {
test := test // loopvar capture
t.Run(test.name, func(t *testing.T) {
if got := allowedGroup(test.groups); got != test.expected {
t.Fatalf("got: %t, wanted: %t", got, test.expected)
}
})
}
}