AI Gateway Go 0.10.0 源码快照 + 旗舰版需求规划报告
M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。 含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package identity
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRoleAndDirectPermissionsAreMerged(t *testing.T) {
|
||||
account := Account{Role: "auditor", Permissions: []string{PermissionProviderManage}}
|
||||
if !HasPermission(account, PermissionProviderRead) || !HasPermission(account, PermissionProviderManage) {
|
||||
t.Fatal("expected role and direct permissions to be merged")
|
||||
}
|
||||
if HasPermission(account, PermissionIdentityManage) {
|
||||
t.Fatal("unexpected identity management permission")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSuperadminWildcard(t *testing.T) {
|
||||
if !HasPermission(Account{Role: "superadmin"}, "future_resource:future_action") {
|
||||
t.Fatal("superadmin wildcard must cover future permissions")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizePermissions(t *testing.T) {
|
||||
permissions, err := normalizePermissions([]string{"provider:read", " provider:read ", "future.feature:execute"})
|
||||
if err != nil || len(permissions) != 2 {
|
||||
t.Fatalf("unexpected normalized permissions: %#v, %v", permissions, err)
|
||||
}
|
||||
if _, err := normalizePermissions([]string{"INVALID PERMISSION"}); err == nil {
|
||||
t.Fatal("expected invalid permission to be rejected")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user