mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[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:
45
internal/api/auth/callback_test.go
Normal file
45
internal/api/auth/callback_test.go
Normal 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)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user