mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 20:17:23 +00:00
fix: member projections (#2771)
* fix(projections): start member projections * fix(projection): member roles as string array * fix member tests
This commit is contained in:
parent
7a5cb80569
commit
983382fcec
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/caos/zitadel/internal/eventstore/handler"
|
"github.com/caos/zitadel/internal/eventstore/handler"
|
||||||
"github.com/caos/zitadel/internal/eventstore/repository"
|
"github.com/caos/zitadel/internal/eventstore/repository"
|
||||||
"github.com/caos/zitadel/internal/repository/iam"
|
"github.com/caos/zitadel/internal/repository/iam"
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestIAMMemberProjection_reduces(t *testing.T) {
|
func TestIAMMemberProjection_reduces(t *testing.T) {
|
||||||
@ -44,7 +45,7 @@ func TestIAMMemberProjection_reduces(t *testing.T) {
|
|||||||
expectedStmt: "INSERT INTO zitadel.projections.iam_members (user_id, roles, creation_date, change_date, sequence, resource_owner, iam_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
expectedStmt: "INSERT INTO zitadel.projections.iam_members (user_id, roles, creation_date, change_date, sequence, resource_owner, iam_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
"user-id",
|
"user-id",
|
||||||
[]string{"role"},
|
pq.StringArray{"role"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
@ -79,7 +80,7 @@ func TestIAMMemberProjection_reduces(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedStmt: "UPDATE zitadel.projections.iam_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (iam_id = $5)",
|
expectedStmt: "UPDATE zitadel.projections.iam_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (iam_id = $5)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
[]string{"role", "changed"},
|
pq.StringArray{"role", "changed"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
"user-id",
|
"user-id",
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/caos/zitadel/internal/eventstore/handler"
|
"github.com/caos/zitadel/internal/eventstore/handler"
|
||||||
"github.com/caos/zitadel/internal/eventstore/handler/crdb"
|
"github.com/caos/zitadel/internal/eventstore/handler/crdb"
|
||||||
"github.com/caos/zitadel/internal/repository/member"
|
"github.com/caos/zitadel/internal/repository/member"
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -41,7 +42,7 @@ func reduceMemberAdded(e member.MemberAddedEvent, opts ...reduceMemberOpt) (*han
|
|||||||
config := reduceMemberConfig{
|
config := reduceMemberConfig{
|
||||||
cols: []handler.Column{
|
cols: []handler.Column{
|
||||||
handler.NewCol(MemberUserIDCol, e.UserID),
|
handler.NewCol(MemberUserIDCol, e.UserID),
|
||||||
handler.NewCol(MemberRolesCol, e.Roles),
|
handler.NewCol(MemberRolesCol, pq.StringArray(e.Roles)),
|
||||||
handler.NewCol(MemberCreationDate, e.CreationDate()),
|
handler.NewCol(MemberCreationDate, e.CreationDate()),
|
||||||
handler.NewCol(MemberChangeDate, e.CreationDate()),
|
handler.NewCol(MemberChangeDate, e.CreationDate()),
|
||||||
handler.NewCol(MemberSequence, e.Sequence()),
|
handler.NewCol(MemberSequence, e.Sequence()),
|
||||||
@ -58,7 +59,7 @@ func reduceMemberAdded(e member.MemberAddedEvent, opts ...reduceMemberOpt) (*han
|
|||||||
func reduceMemberChanged(e member.MemberChangedEvent, opts ...reduceMemberOpt) (*handler.Statement, error) {
|
func reduceMemberChanged(e member.MemberChangedEvent, opts ...reduceMemberOpt) (*handler.Statement, error) {
|
||||||
config := reduceMemberConfig{
|
config := reduceMemberConfig{
|
||||||
cols: []handler.Column{
|
cols: []handler.Column{
|
||||||
handler.NewCol(MemberRolesCol, e.Roles),
|
handler.NewCol(MemberRolesCol, pq.StringArray(e.Roles)),
|
||||||
handler.NewCol(MemberChangeDate, e.CreationDate()),
|
handler.NewCol(MemberChangeDate, e.CreationDate()),
|
||||||
handler.NewCol(MemberSequence, e.Sequence()),
|
handler.NewCol(MemberSequence, e.Sequence()),
|
||||||
},
|
},
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/caos/zitadel/internal/eventstore/handler"
|
"github.com/caos/zitadel/internal/eventstore/handler"
|
||||||
"github.com/caos/zitadel/internal/eventstore/repository"
|
"github.com/caos/zitadel/internal/eventstore/repository"
|
||||||
"github.com/caos/zitadel/internal/repository/org"
|
"github.com/caos/zitadel/internal/repository/org"
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOrgMemberProjection_reduces(t *testing.T) {
|
func TestOrgMemberProjection_reduces(t *testing.T) {
|
||||||
@ -44,7 +45,7 @@ func TestOrgMemberProjection_reduces(t *testing.T) {
|
|||||||
expectedStmt: "INSERT INTO zitadel.projections.org_members (user_id, roles, creation_date, change_date, sequence, resource_owner, org_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
expectedStmt: "INSERT INTO zitadel.projections.org_members (user_id, roles, creation_date, change_date, sequence, resource_owner, org_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
"user-id",
|
"user-id",
|
||||||
[]string{"role"},
|
pq.StringArray{"role"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
@ -79,7 +80,7 @@ func TestOrgMemberProjection_reduces(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedStmt: "UPDATE zitadel.projections.org_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (org_id = $5)",
|
expectedStmt: "UPDATE zitadel.projections.org_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (org_id = $5)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
[]string{"role", "changed"},
|
pq.StringArray{"role", "changed"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
"user-id",
|
"user-id",
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/caos/zitadel/internal/eventstore/handler"
|
"github.com/caos/zitadel/internal/eventstore/handler"
|
||||||
"github.com/caos/zitadel/internal/eventstore/repository"
|
"github.com/caos/zitadel/internal/eventstore/repository"
|
||||||
"github.com/caos/zitadel/internal/repository/project"
|
"github.com/caos/zitadel/internal/repository/project"
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
||||||
@ -45,7 +46,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
|||||||
expectedStmt: "INSERT INTO zitadel.projections.project_grant_members (user_id, roles, creation_date, change_date, sequence, resource_owner, project_id, grant_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)",
|
expectedStmt: "INSERT INTO zitadel.projections.project_grant_members (user_id, roles, creation_date, change_date, sequence, resource_owner, project_id, grant_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
"user-id",
|
"user-id",
|
||||||
[]string{"role"},
|
pq.StringArray{"role"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
@ -82,7 +83,7 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedStmt: "UPDATE zitadel.projections.project_grant_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (project_id = $5) AND (grant_id = $6)",
|
expectedStmt: "UPDATE zitadel.projections.project_grant_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (project_id = $5) AND (grant_id = $6)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
[]string{"role", "changed"},
|
pq.StringArray{"role", "changed"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
"user-id",
|
"user-id",
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"github.com/caos/zitadel/internal/eventstore/handler"
|
"github.com/caos/zitadel/internal/eventstore/handler"
|
||||||
"github.com/caos/zitadel/internal/eventstore/repository"
|
"github.com/caos/zitadel/internal/eventstore/repository"
|
||||||
"github.com/caos/zitadel/internal/repository/project"
|
"github.com/caos/zitadel/internal/repository/project"
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestProjectMemberProjection_reduces(t *testing.T) {
|
func TestProjectMemberProjection_reduces(t *testing.T) {
|
||||||
@ -44,7 +45,7 @@ func TestProjectMemberProjection_reduces(t *testing.T) {
|
|||||||
expectedStmt: "INSERT INTO zitadel.projections.project_members (user_id, roles, creation_date, change_date, sequence, resource_owner, project_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
expectedStmt: "INSERT INTO zitadel.projections.project_members (user_id, roles, creation_date, change_date, sequence, resource_owner, project_id) VALUES ($1, $2, $3, $4, $5, $6, $7)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
"user-id",
|
"user-id",
|
||||||
[]string{"role"},
|
pq.StringArray{"role"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
@ -79,7 +80,7 @@ func TestProjectMemberProjection_reduces(t *testing.T) {
|
|||||||
{
|
{
|
||||||
expectedStmt: "UPDATE zitadel.projections.project_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (project_id = $5)",
|
expectedStmt: "UPDATE zitadel.projections.project_members SET (roles, change_date, sequence) = ($1, $2, $3) WHERE (user_id = $4) AND (project_id = $5)",
|
||||||
expectedArgs: []interface{}{
|
expectedArgs: []interface{}{
|
||||||
[]string{"role", "changed"},
|
pq.StringArray{"role", "changed"},
|
||||||
anyArg{},
|
anyArg{},
|
||||||
uint64(15),
|
uint64(15),
|
||||||
"user-id",
|
"user-id",
|
||||||
|
@ -58,6 +58,10 @@ func Start(ctx context.Context, sqlClient *sql.DB, es *eventstore.Eventstore, co
|
|||||||
NewFeatureProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["features"]))
|
NewFeatureProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["features"]))
|
||||||
NewUserProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["users"]))
|
NewUserProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["users"]))
|
||||||
NewLoginNameProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["login_names"]))
|
NewLoginNameProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["login_names"]))
|
||||||
|
NewOrgMemberProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["org_members"]))
|
||||||
|
NewIAMMemberProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["iam_members"]))
|
||||||
|
NewProjectMemberProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["project_members"]))
|
||||||
|
NewProjectGrantMemberProjection(ctx, applyCustomConfig(projectionConfig, config.Customizations["project_grant_members"]))
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user