mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
# Which Problems Are Solved 1. Adding users to user groups and removing users from user groups. 2. Searching for users in user groups by group IDs or user IDs # How the Problems Are Solved By adding: 1. The API definitions to manage users in users groups 3. The command-layer implementation of adding users/removing users to/from user groups. 4. The projection table group_users1 5. Query-side implementation to search for users in user groups # Additional Changes 1. Remove debug statements from unit tests. 2. Fix removal of groups when orgs are removed 3. Add unit tests for groups projection # Additional Context * Related to #9702 * Follow-up for PRs * https://github.com/zitadel/zitadel/pull/10455 * https://github.com/zitadel/zitadel/pull/10758 * https://github.com/zitadel/zitadel/pull/10853
75 lines
1.5 KiB
Go
75 lines
1.5 KiB
Go
package group
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
)
|
|
|
|
const (
|
|
GroupUsersAddedEventType = groupEventTypePrefix + "users.added"
|
|
GroupUsersRemovedEventType = groupEventTypePrefix + "users.removed"
|
|
)
|
|
|
|
type GroupUsersAddedEvent struct {
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
UserIDs []string `json:"userIds"`
|
|
}
|
|
|
|
func NewGroupUsersAddedEvent(ctx context.Context, aggregate *eventstore.Aggregate, userIDs []string) *GroupUsersAddedEvent {
|
|
return &GroupUsersAddedEvent{
|
|
BaseEvent: *eventstore.NewBaseEventForPush(
|
|
ctx,
|
|
aggregate,
|
|
GroupUsersAddedEventType,
|
|
),
|
|
UserIDs: userIDs,
|
|
}
|
|
}
|
|
|
|
func (e *GroupUsersAddedEvent) SetBaseEvent(event *eventstore.BaseEvent) {
|
|
e.BaseEvent = *event
|
|
}
|
|
|
|
func (e *GroupUsersAddedEvent) Payload() interface{} {
|
|
return e
|
|
}
|
|
|
|
func (e *GroupUsersAddedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
|
|
return nil
|
|
}
|
|
|
|
type GroupUsersRemovedEvent struct {
|
|
eventstore.BaseEvent `json:"-"`
|
|
|
|
UserIDs []string `json:"userIds"`
|
|
}
|
|
|
|
func NewGroupUsersRemovedEvent(
|
|
ctx context.Context,
|
|
aggregate *eventstore.Aggregate,
|
|
userIDs []string,
|
|
) *GroupUsersRemovedEvent {
|
|
return &GroupUsersRemovedEvent{
|
|
BaseEvent: *eventstore.NewBaseEventForPush(
|
|
ctx,
|
|
aggregate,
|
|
GroupUsersRemovedEventType,
|
|
),
|
|
UserIDs: userIDs,
|
|
}
|
|
}
|
|
|
|
func (e *GroupUsersRemovedEvent) SetBaseEvent(event *eventstore.BaseEvent) {
|
|
e.BaseEvent = *event
|
|
}
|
|
|
|
func (e *GroupUsersRemovedEvent) Payload() interface{} {
|
|
return e
|
|
}
|
|
|
|
func (e *GroupUsersRemovedEvent) UniqueConstraints() []*eventstore.UniqueConstraint {
|
|
return nil
|
|
}
|