2021-01-08 11:33:45 +01:00
|
|
|
package command
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2022-04-12 16:20:17 +02:00
|
|
|
"strings"
|
2021-08-18 17:04:56 +02:00
|
|
|
|
2022-04-27 01:01:45 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/api/authz"
|
feat: trusted (instance) domains (#8369)
# Which Problems Are Solved
ZITADEL currently selects the instance context based on a HTTP header
(see https://github.com/zitadel/zitadel/issues/8279#issue-2399959845 and
checks it against the list of instance domains. Let's call it instance
or API domain.
For any context based URL (e.g. OAuth, OIDC, SAML endpoints, links in
emails, ...) the requested domain (instance domain) will be used. Let's
call it the public domain.
In cases of proxied setups, all exposed domains (public domains) require
the domain to be managed as instance domain.
This can either be done using the "ExternalDomain" in the runtime config
or via system API, which requires a validation through CustomerPortal on
zitadel.cloud.
# How the Problems Are Solved
- Two new headers / header list are added:
- `InstanceHostHeaders`: an ordered list (first sent wins), which will
be used to match the instance.
(For backward compatibility: the `HTTP1HostHeader`, `HTTP2HostHeader`
and `forwarded`, `x-forwarded-for`, `x-forwarded-host` are checked
afterwards as well)
- `PublicHostHeaders`: an ordered list (first sent wins), which will be
used as public host / domain. This will be checked against a list of
trusted domains on the instance.
- The middleware intercepts all requests to the API and passes a
`DomainCtx` object with the hosts and protocol into the context
(previously only a computed `origin` was passed)
- HTTP / GRPC server do not longer try to match the headers to instances
themself, but use the passed `http.DomainContext` in their interceptors.
- The `RequestedHost` and `RequestedDomain` from authz.Instance are
removed in favor of the `http.DomainContext`
- When authenticating to or signing out from Console UI, the current
`http.DomainContext(ctx).Origin` (already checked by instance
interceptor for validity) is used to compute and dynamically add a
`redirect_uri` and `post_logout_redirect_uri`.
- Gateway passes all configured host headers (previously only did
`x-zitadel-*`)
- Admin API allows to manage trusted domain
# Additional Changes
None
# Additional Context
- part of #8279
- open topics:
- "single-instance" mode
- Console UI
2024-07-31 17:00:38 +02:00
|
|
|
http_util "github.com/zitadel/zitadel/internal/api/http"
|
2022-04-27 01:01:45 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/command/preparation"
|
|
|
|
"github.com/zitadel/zitadel/internal/domain"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
|
|
"github.com/zitadel/zitadel/internal/repository/org"
|
2022-11-30 17:01:17 +01:00
|
|
|
"github.com/zitadel/zitadel/internal/repository/project"
|
2023-04-26 16:19:32 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/repository/user"
|
2024-06-19 13:56:33 +03:00
|
|
|
"github.com/zitadel/zitadel/internal/telemetry/tracing"
|
2023-12-08 16:30:55 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/zerrors"
|
2021-01-08 11:33:45 +01:00
|
|
|
)
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
// InstanceOrgSetup is used for the first organisation in the instance setup.
|
|
|
|
// It used to be called OrgSetup, which now allows multiple Users, but it's used in the config.yaml and therefore
|
|
|
|
// a breaking change was not possible.
|
|
|
|
type InstanceOrgSetup struct {
|
2022-05-16 16:35:49 +02:00
|
|
|
Name string
|
|
|
|
CustomDomain string
|
2022-12-09 13:04:33 +00:00
|
|
|
Human *AddHuman
|
|
|
|
Machine *AddMachine
|
2022-07-12 15:38:47 +02:00
|
|
|
Roles []string
|
2022-04-12 16:20:17 +02:00
|
|
|
}
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
type OrgSetup struct {
|
|
|
|
Name string
|
|
|
|
CustomDomain string
|
|
|
|
Admins []*OrgSetupAdmin
|
|
|
|
}
|
|
|
|
|
|
|
|
// OrgSetupAdmin describes a user to be created (Human / Machine) or an existing (ID) to be used for an org setup.
|
|
|
|
type OrgSetupAdmin struct {
|
|
|
|
ID string
|
|
|
|
Human *AddHuman
|
|
|
|
Machine *AddMachine
|
|
|
|
Roles []string
|
|
|
|
}
|
|
|
|
|
|
|
|
type orgSetupCommands struct {
|
|
|
|
validations []preparation.Validation
|
|
|
|
aggregate *org.Aggregate
|
|
|
|
commands *Commands
|
|
|
|
|
|
|
|
admins []*OrgSetupAdmin
|
|
|
|
pats []*PersonalAccessToken
|
|
|
|
machineKeys []*MachineKey
|
|
|
|
}
|
|
|
|
|
|
|
|
type CreatedOrg struct {
|
|
|
|
ObjectDetails *domain.ObjectDetails
|
|
|
|
CreatedAdmins []*CreatedOrgAdmin
|
|
|
|
}
|
2022-04-12 16:20:17 +02:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
type CreatedOrgAdmin struct {
|
|
|
|
ID string
|
|
|
|
EmailCode *string
|
|
|
|
PhoneCode *string
|
|
|
|
PAT *PersonalAccessToken
|
|
|
|
MachineKey *MachineKey
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID string, allowInitialMail bool, userIDs ...string) (_ *CreatedOrg, err error) {
|
2024-05-23 12:28:46 +02:00
|
|
|
cmds := c.newOrgSetupCommands(ctx, orgID, o)
|
2023-08-11 16:19:14 +02:00
|
|
|
for _, admin := range o.Admins {
|
|
|
|
if err = cmds.setupOrgAdmin(admin, allowInitialMail); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if err = cmds.addCustomDomain(o.CustomDomain, userIDs); err != nil {
|
|
|
|
return nil, err
|
2022-07-12 15:38:47 +02:00
|
|
|
}
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
return cmds.push(ctx)
|
|
|
|
}
|
|
|
|
|
2024-05-23 12:28:46 +02:00
|
|
|
func (c *Commands) newOrgSetupCommands(ctx context.Context, orgID string, orgSetup *OrgSetup) *orgSetupCommands {
|
2023-08-11 16:19:14 +02:00
|
|
|
orgAgg := org.NewAggregate(orgID)
|
2022-05-16 16:35:49 +02:00
|
|
|
validations := []preparation.Validation{
|
2024-05-23 12:28:46 +02:00
|
|
|
AddOrgCommand(ctx, orgAgg, orgSetup.Name),
|
2023-08-11 16:19:14 +02:00
|
|
|
}
|
|
|
|
return &orgSetupCommands{
|
|
|
|
validations: validations,
|
|
|
|
aggregate: orgAgg,
|
|
|
|
commands: c,
|
|
|
|
admins: orgSetup.Admins,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *orgSetupCommands) setupOrgAdmin(admin *OrgSetupAdmin, allowInitialMail bool) error {
|
|
|
|
if admin.ID != "" {
|
|
|
|
c.validations = append(c.validations, c.commands.AddOrgMemberCommand(c.aggregate, admin.ID, orgAdminRoles(admin.Roles)...))
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
userID, err := c.commands.idGenerator.Next()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if admin.Human != nil {
|
|
|
|
admin.Human.ID = userID
|
|
|
|
c.validations = append(c.validations, c.commands.AddHumanCommand(admin.Human, c.aggregate.ID, c.commands.userPasswordHasher, c.commands.userEncryption, allowInitialMail))
|
|
|
|
} else if admin.Machine != nil {
|
|
|
|
admin.Machine.Machine.AggregateID = userID
|
|
|
|
if err = c.setupOrgAdminMachine(c.aggregate, admin.Machine); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2022-05-16 16:35:49 +02:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
c.validations = append(c.validations, c.commands.AddOrgMemberCommand(c.aggregate, userID, orgAdminRoles(admin.Roles)...))
|
|
|
|
return nil
|
|
|
|
}
|
2022-12-09 13:04:33 +00:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
func (c *orgSetupCommands) setupOrgAdminMachine(orgAgg *org.Aggregate, machine *AddMachine) error {
|
|
|
|
userAgg := user.NewAggregate(machine.Machine.AggregateID, orgAgg.ID)
|
|
|
|
c.validations = append(c.validations, AddMachineCommand(userAgg, machine.Machine))
|
2022-12-09 13:04:33 +00:00
|
|
|
var pat *PersonalAccessToken
|
2023-08-11 16:19:14 +02:00
|
|
|
var machineKey *MachineKey
|
|
|
|
if machine.Pat != nil {
|
|
|
|
pat = NewPersonalAccessToken(orgAgg.ID, machine.Machine.AggregateID, machine.Pat.ExpirationDate, machine.Pat.Scopes, domain.UserTypeMachine)
|
|
|
|
tokenID, err := c.commands.idGenerator.Next()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
2022-12-09 13:04:33 +00:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
pat.TokenID = tokenID
|
|
|
|
c.pats = append(c.pats, pat)
|
|
|
|
c.validations = append(c.validations, prepareAddPersonalAccessToken(pat, c.commands.keyAlgorithm))
|
|
|
|
}
|
|
|
|
if machine.MachineKey != nil {
|
|
|
|
machineKey = NewMachineKey(orgAgg.ID, machine.Machine.AggregateID, machine.MachineKey.ExpirationDate, machine.MachineKey.Type)
|
|
|
|
keyID, err := c.commands.idGenerator.Next()
|
|
|
|
if err != nil {
|
|
|
|
return err
|
2022-12-09 13:04:33 +00:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
machineKey.KeyID = keyID
|
|
|
|
c.machineKeys = append(c.machineKeys, machineKey)
|
|
|
|
c.validations = append(c.validations, prepareAddUserMachineKey(machineKey, c.commands.keySize))
|
2022-12-09 13:04:33 +00:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
return nil
|
|
|
|
}
|
2022-12-09 13:04:33 +00:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
func (c *orgSetupCommands) addCustomDomain(domain string, userIDs []string) error {
|
|
|
|
if domain != "" {
|
|
|
|
c.validations = append(c.validations, c.commands.prepareAddOrgDomain(c.aggregate, domain, userIDs))
|
2022-05-16 16:35:49 +02:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
return nil
|
|
|
|
}
|
2022-05-16 16:35:49 +02:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
func orgAdminRoles(roles []string) []string {
|
|
|
|
if len(roles) > 0 {
|
|
|
|
return roles
|
2022-04-12 16:20:17 +02:00
|
|
|
}
|
2023-08-11 16:19:14 +02:00
|
|
|
return []string{domain.RoleOrgOwner}
|
|
|
|
}
|
2022-04-12 16:20:17 +02:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
func (c *orgSetupCommands) push(ctx context.Context) (_ *CreatedOrg, err error) {
|
|
|
|
cmds, err := preparation.PrepareCommands(ctx, c.commands.eventstore.Filter, c.validations...)
|
2022-04-12 16:20:17 +02:00
|
|
|
if err != nil {
|
2023-08-11 16:19:14 +02:00
|
|
|
return nil, err
|
2022-04-12 16:20:17 +02:00
|
|
|
}
|
2022-12-09 13:04:33 +00:00
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
events, err := c.commands.eventstore.Push(ctx, cmds...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
2022-12-09 13:04:33 +00:00
|
|
|
}
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
return &CreatedOrg{
|
|
|
|
ObjectDetails: &domain.ObjectDetails{
|
|
|
|
Sequence: events[len(events)-1].Sequence(),
|
2023-10-19 12:19:10 +02:00
|
|
|
EventDate: events[len(events)-1].CreatedAt(),
|
2023-08-11 16:19:14 +02:00
|
|
|
ResourceOwner: c.aggregate.ID,
|
|
|
|
},
|
|
|
|
CreatedAdmins: c.createdAdmins(),
|
2022-04-12 16:20:17 +02:00
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
func (c *orgSetupCommands) createdAdmins() []*CreatedOrgAdmin {
|
|
|
|
users := make([]*CreatedOrgAdmin, 0, len(c.admins))
|
|
|
|
for _, admin := range c.admins {
|
|
|
|
if admin.ID != "" {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
if admin.Human != nil {
|
|
|
|
users = append(users, c.createdHumanAdmin(admin))
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
if admin.Machine != nil {
|
|
|
|
users = append(users, c.createdMachineAdmin(admin))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return users
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *orgSetupCommands) createdHumanAdmin(admin *OrgSetupAdmin) *CreatedOrgAdmin {
|
|
|
|
createdAdmin := &CreatedOrgAdmin{
|
|
|
|
ID: admin.Human.ID,
|
|
|
|
}
|
|
|
|
if admin.Human.EmailCode != nil {
|
|
|
|
createdAdmin.EmailCode = admin.Human.EmailCode
|
|
|
|
}
|
|
|
|
return createdAdmin
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *orgSetupCommands) createdMachineAdmin(admin *OrgSetupAdmin) *CreatedOrgAdmin {
|
|
|
|
createdAdmin := &CreatedOrgAdmin{
|
|
|
|
ID: admin.Machine.Machine.AggregateID,
|
|
|
|
}
|
|
|
|
if admin.Machine.Pat != nil {
|
|
|
|
for _, pat := range c.pats {
|
|
|
|
if pat.AggregateID == createdAdmin.ID {
|
|
|
|
createdAdmin.PAT = pat
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if admin.Machine.MachineKey != nil {
|
|
|
|
for _, key := range c.machineKeys {
|
|
|
|
if key.AggregateID == createdAdmin.ID {
|
|
|
|
createdAdmin.MachineKey = key
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return createdAdmin
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Commands) SetUpOrg(ctx context.Context, o *OrgSetup, allowInitialMail bool, userIDs ...string) (*CreatedOrg, error) {
|
2022-07-28 15:42:35 +02:00
|
|
|
orgID, err := c.idGenerator.Next()
|
|
|
|
if err != nil {
|
2023-08-11 16:19:14 +02:00
|
|
|
return nil, err
|
2022-07-28 15:42:35 +02:00
|
|
|
}
|
|
|
|
|
2023-08-11 16:19:14 +02:00
|
|
|
return c.setUpOrgWithIDs(ctx, o, orgID, allowInitialMail, userIDs...)
|
2022-07-28 15:42:35 +02:00
|
|
|
}
|
|
|
|
|
2022-10-06 14:23:59 +02:00
|
|
|
// AddOrgCommand defines the commands to create a new org,
|
2022-04-12 16:20:17 +02:00
|
|
|
// this includes the verified default domain
|
2024-05-23 12:28:46 +02:00
|
|
|
func AddOrgCommand(ctx context.Context, a *org.Aggregate, name string) preparation.Validation {
|
2022-04-12 16:20:17 +02:00
|
|
|
return func() (preparation.CreateCommands, error) {
|
|
|
|
if name = strings.TrimSpace(name); name == "" {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInvalidArgument(nil, "ORG-mruNY", "Errors.Invalid.Argument")
|
2022-04-12 16:20:17 +02:00
|
|
|
}
|
feat: trusted (instance) domains (#8369)
# Which Problems Are Solved
ZITADEL currently selects the instance context based on a HTTP header
(see https://github.com/zitadel/zitadel/issues/8279#issue-2399959845 and
checks it against the list of instance domains. Let's call it instance
or API domain.
For any context based URL (e.g. OAuth, OIDC, SAML endpoints, links in
emails, ...) the requested domain (instance domain) will be used. Let's
call it the public domain.
In cases of proxied setups, all exposed domains (public domains) require
the domain to be managed as instance domain.
This can either be done using the "ExternalDomain" in the runtime config
or via system API, which requires a validation through CustomerPortal on
zitadel.cloud.
# How the Problems Are Solved
- Two new headers / header list are added:
- `InstanceHostHeaders`: an ordered list (first sent wins), which will
be used to match the instance.
(For backward compatibility: the `HTTP1HostHeader`, `HTTP2HostHeader`
and `forwarded`, `x-forwarded-for`, `x-forwarded-host` are checked
afterwards as well)
- `PublicHostHeaders`: an ordered list (first sent wins), which will be
used as public host / domain. This will be checked against a list of
trusted domains on the instance.
- The middleware intercepts all requests to the API and passes a
`DomainCtx` object with the hosts and protocol into the context
(previously only a computed `origin` was passed)
- HTTP / GRPC server do not longer try to match the headers to instances
themself, but use the passed `http.DomainContext` in their interceptors.
- The `RequestedHost` and `RequestedDomain` from authz.Instance are
removed in favor of the `http.DomainContext`
- When authenticating to or signing out from Console UI, the current
`http.DomainContext(ctx).Origin` (already checked by instance
interceptor for validity) is used to compute and dynamically add a
`redirect_uri` and `post_logout_redirect_uri`.
- Gateway passes all configured host headers (previously only did
`x-zitadel-*`)
- Admin API allows to manage trusted domain
# Additional Changes
None
# Additional Context
- part of #8279
- open topics:
- "single-instance" mode
- Console UI
2024-07-31 17:00:38 +02:00
|
|
|
defaultDomain, err := domain.NewIAMDomainName(name, http_util.DomainContext(ctx).RequestedDomain())
|
2023-10-11 09:55:01 +02:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2022-04-12 16:20:17 +02:00
|
|
|
return func(ctx context.Context, filter preparation.FilterToQueryReducer) ([]eventstore.Command, error) {
|
|
|
|
return []eventstore.Command{
|
|
|
|
org.NewOrgAddedEvent(ctx, &a.Aggregate, name),
|
|
|
|
org.NewDomainAddedEvent(ctx, &a.Aggregate, defaultDomain),
|
|
|
|
org.NewDomainVerifiedEvent(ctx, &a.Aggregate, defaultDomain),
|
|
|
|
org.NewDomainPrimarySetEvent(ctx, &a.Aggregate, defaultDomain),
|
|
|
|
}, nil
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-24 11:17:39 +01:00
|
|
|
func (c *Commands) getOrg(ctx context.Context, orgID string) (*domain.Org, error) {
|
|
|
|
writeModel, err := c.getOrgWriteModelByID(ctx, orgID)
|
2021-01-15 09:32:59 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
if !isOrgStateExists(writeModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInternal(err, "COMMAND-4M9sf", "Errors.Org.NotFound")
|
2021-01-15 09:32:59 +01:00
|
|
|
}
|
|
|
|
return orgWriteModelToOrg(writeModel), nil
|
|
|
|
}
|
|
|
|
|
2021-02-24 11:17:39 +01:00
|
|
|
func (c *Commands) checkOrgExists(ctx context.Context, orgID string) error {
|
|
|
|
orgWriteModel, err := c.getOrgWriteModelByID(ctx, orgID)
|
2021-01-28 06:35:26 +01:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
if !isOrgStateExists(orgWriteModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return zerrors.ThrowPreconditionFailed(nil, "COMMAND-QXPGs", "Errors.Org.NotFound")
|
2021-01-28 06:35:26 +01:00
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-06-19 13:56:33 +03:00
|
|
|
func (c *Commands) AddOrgWithID(ctx context.Context, name, userID, resourceOwner, orgID string, claimedUserIDs []string) (_ *domain.Org, err error) {
|
|
|
|
ctx, span := tracing.NewSpan(ctx)
|
|
|
|
defer func() { span.EndWithError(err) }()
|
|
|
|
|
2022-07-28 15:42:35 +02:00
|
|
|
existingOrg, err := c.getOrgWriteModelByID(ctx, orgID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if existingOrg.State != domain.OrgStateUnspecified {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "ORG-lapo2m", "Errors.Org.AlreadyExisting")
|
2022-07-28 15:42:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return c.addOrgWithIDAndMember(ctx, name, userID, resourceOwner, orgID, claimedUserIDs)
|
|
|
|
}
|
|
|
|
|
2021-05-04 11:09:24 +02:00
|
|
|
func (c *Commands) AddOrg(ctx context.Context, name, userID, resourceOwner string, claimedUserIDs []string) (*domain.Org, error) {
|
2022-08-19 15:00:14 +02:00
|
|
|
if name = strings.TrimSpace(name); name == "" {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInvalidArgument(nil, "EVENT-Mf9sd", "Errors.Org.Invalid")
|
2022-07-28 15:42:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
orgID, err := c.idGenerator.Next()
|
|
|
|
if err != nil {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInternal(err, "COMMA-OwciI", "Errors.Internal")
|
2022-07-28 15:42:35 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return c.addOrgWithIDAndMember(ctx, name, userID, resourceOwner, orgID, claimedUserIDs)
|
|
|
|
}
|
|
|
|
|
2024-06-19 13:56:33 +03:00
|
|
|
func (c *Commands) addOrgWithIDAndMember(ctx context.Context, name, userID, resourceOwner, orgID string, claimedUserIDs []string) (_ *domain.Org, err error) {
|
|
|
|
ctx, span := tracing.NewSpan(ctx)
|
|
|
|
defer func() { span.EndWithError(err) }()
|
|
|
|
|
2022-07-28 15:42:35 +02:00
|
|
|
orgAgg, addedOrg, events, err := c.addOrgWithID(ctx, &domain.Org{Name: name}, orgID, claimedUserIDs)
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-02-24 11:17:39 +01:00
|
|
|
err = c.checkUserExists(ctx, userID, resourceOwner)
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-02-18 14:48:27 +01:00
|
|
|
addedMember := NewOrgMemberWriteModel(addedOrg.AggregateID, userID)
|
2021-02-24 11:17:39 +01:00
|
|
|
orgMemberEvent, err := c.addOrgMember(ctx, orgAgg, addedMember, domain.NewMember(orgAgg.ID, userID, domain.RoleOrgOwner))
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-02-18 14:48:27 +01:00
|
|
|
events = append(events, orgMemberEvent)
|
2022-01-03 09:19:07 +01:00
|
|
|
pushedEvents, err := c.eventstore.Push(ctx, events...)
|
feat: cascade changes and removes (#1239)
* chore(site): dependabot deps (#1148)
* chore(deps): bump highlight.js from 10.4.1 to 10.5.0 in /site (#1143)
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 10.4.1 to 10.5.0.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/10.4.1...10.5.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/plugin-transform-runtime in /site (#1144)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.12.1 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-plugin-transform-runtime)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump sirv from 1.0.7 to 1.0.10 in /site (#1145)
Bumps [sirv](https://github.com/lukeed/sirv) from 1.0.7 to 1.0.10.
- [Release notes](https://github.com/lukeed/sirv/releases)
- [Commits](https://github.com/lukeed/sirv/compare/v1.0.7...v1.0.10)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup from 2.34.0 to 2.35.1 in /site (#1142)
Bumps [rollup](https://github.com/rollup/rollup) from 2.34.0 to 2.35.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.34.0...v2.35.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-node-resolve in /site (#1141)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 10.0.0 to 11.0.1.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v10.0.0...commonjs-v11.0.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump marked from 1.2.5 to 1.2.7 in /site (#1140)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.5 to 1.2.7.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.5...v1.2.7)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/core from 7.12.9 to 7.12.10 in /site (#1139)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.9 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-core)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup-plugin-svelte from 6.1.1 to 7.0.0 in /site (#1138)
Bumps [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) from 6.1.1 to 7.0.0.
- [Release notes](https://github.com/sveltejs/rollup-plugin-svelte/releases)
- [Changelog](https://github.com/sveltejs/rollup-plugin-svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/rollup-plugin-svelte/compare/v6.1.1...v7.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/preset-env from 7.12.1 to 7.12.11 in /site (#1137)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.1 to 7.12.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.11/packages/babel-preset-env)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* downgrade svelte plugin
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(console): dependabot deps (#1147)
* chore(deps-dev): bump @types/node from 14.14.13 to 14.14.19 in /console (#1146)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.13 to 14.14.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump ts-protoc-gen from 0.13.0 to 0.14.0 in /console (#1129)
Bumps [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen) from 0.13.0 to 0.14.0.
- [Release notes](https://github.com/improbable-eng/ts-protoc-gen/releases)
- [Changelog](https://github.com/improbable-eng/ts-protoc-gen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/improbable-eng/ts-protoc-gen/compare/0.13.0...0.14.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1128)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.4 to 11.0.5.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.0.5/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.4 to 11.0.5 in /console (#1127)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.4 to 11.0.5.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.4...v11.0.5)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1126)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.4 to 0.1100.5.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* audit
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: e-mail templates (#1158)
* View definition added
* Get templates and texts from the database.
* Fill in texts in templates
* Fill in texts in templates
* Client API added
* Weekly backup
* Weekly backup
* Daily backup
* Weekly backup
* Tests added
* Corrections from merge branch
* Fixes from pull request review
* chore(console): dependencies (#1189)
* chore(deps-dev): bump @angular/language-service in /console (#1187)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.5 to 11.0.9.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.0.9/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump google-proto-files from 2.3.0 to 2.4.0 in /console (#1186)
Bumps [google-proto-files](https://github.com/googleapis/nodejs-proto-files) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/googleapis/nodejs-proto-files/releases)
- [Changelog](https://github.com/googleapis/nodejs-proto-files/blob/master/CHANGELOG.md)
- [Commits](https://github.com/googleapis/nodejs-proto-files/compare/v2.3.0...v2.4.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @types/node from 14.14.19 to 14.14.21 in /console (#1185)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.19 to 14.14.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.5 to 11.0.7 in /console (#1184)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.5 to 11.0.7.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.5...v11.0.7)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 5.2.3 to 6.0.0 in /console (#1183)
Bumps [karma](https://github.com/karma-runner/karma) from 5.2.3 to 6.0.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.3...v6.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1182)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.5 to 0.1100.7.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: change login to command side
* feat: change login to command side
* fix: fix push on user
* fix(console): trigger unauthenticated dialog only once (#1170)
* fix: trigger dialog once
* remove log
* typed trigger
* chore(console): dependencies (#1205)
* chore(deps-dev): bump stylelint from 13.8.0 to 13.9.0 in /console (#1204)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.8.0 to 13.9.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.8.0...13.9.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1203)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.9 to 11.1.0.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.1.0/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 6.0.0 to 6.0.1 in /console (#1202)
Bumps [karma](https://github.com/karma-runner/karma) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.0.0...v6.0.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.7 to 11.1.1 in /console (#1201)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.7 to 11.1.1.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.7...v11.1.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @types/jasmine from 3.6.2 to 3.6.3 in /console (#1200)
Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 3.6.2 to 3.6.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps-dev): bump @types/node from 14.14.21 to 14.14.22 in /console (#1199)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.21 to 14.14.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1198)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.7 to 0.1101.1.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps): bump angularx-qrcode from 10.0.11 to 11.0.0 in /console (#1197)
Bumps [angularx-qrcode](https://github.com/cordobo/angularx-qrcode) from 10.0.11 to 11.0.0.
- [Release notes](https://github.com/cordobo/angularx-qrcode/releases)
- [Commits](https://github.com/cordobo/angularx-qrcode/compare/10.0.11...11.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix pack lock
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: handle sequence correctly in subscription (#1209)
* feat: user command side
* feat: sign out
* feat: command side login
* feat: command side login
* feat: fix register user
* feat: fix register user
* feat: fix web auth n events
* feat: add machine keys
* feat: send codes
* feat: move authrequest to domain
* feat: move authrequest to domain
* feat: webauthn working
* fix: correct master after merges again (#1230)
* chore(docs): correct `iss` claim of jwt profile (#1229)
* core(docs): correct `iss` claim of jwt profile
* fix: correct master after merges again (#1230)
* feat(login): new palette based styles (#1149)
* chore(deps-dev): bump rollup from 2.33.2 to 2.34.0 in /site (#1040)
Bumps [rollup](https://github.com/rollup/rollup) from 2.33.2 to 2.34.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.33.2...v2.34.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump svelte-i18n from 3.2.5 to 3.3.0 in /site (#1039)
Bumps [svelte-i18n](https://github.com/kaisermann/svelte-i18n) from 3.2.5 to 3.3.0.
- [Release notes](https://github.com/kaisermann/svelte-i18n/releases)
- [Changelog](https://github.com/kaisermann/svelte-i18n/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kaisermann/svelte-i18n/compare/v3.2.5...v3.3.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-url from 5.0.1 to 6.0.0 in /site (#1038)
Bumps [@rollup/plugin-url](https://github.com/rollup/plugins) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/url-v5.0.1...url-v6.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump svelte from 3.29.7 to 3.30.1 in /site (#1037)
Bumps [svelte](https://github.com/sveltejs/svelte) from 3.29.7 to 3.30.1.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/compare/v3.29.7...v3.30.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump marked from 1.2.4 to 1.2.5 in /site (#1036)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.4 to 1.2.5.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.4...v1.2.5)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/core from 7.12.3 to 7.12.9 in /site (#1035)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.3 to 7.12.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.9/packages/babel-core)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup-plugin-svelte from 6.1.1 to 7.0.0 in /site (#1034)
Bumps [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) from 6.1.1 to 7.0.0.
- [Release notes](https://github.com/sveltejs/rollup-plugin-svelte/releases)
- [Changelog](https://github.com/sveltejs/rollup-plugin-svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/rollup-plugin-svelte/compare/v6.1.1...v7.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-commonjs in /site (#1033)
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins) from 15.1.0 to 17.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v15.1.0...commonjs-v17.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-node-resolve in /site (#1032)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v10.0.0...commonjs-v11.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/preset-env from 7.12.1 to 7.12.7 in /site (#1031)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.1 to 7.12.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.7/packages/babel-preset-env)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* go
* bundle files, lgn-color, legacy theme
* remove old references
* light dark context, button styles, zitadel brand
* button theme, edit templates
* typography theme mixins
* input styles, container, extend light dark palette
* footer, palette, container
* container, label, assets, header
* action container, input, typography label, adapt button theme
* a and footer styles, adapt palette
* user log profile, resourcetempurl
* postinstall againnn
* wrochage
* rm local grpc
* button elevation, helper for components
* radio
* radio button mixins, bundle
* qr code styles, secret clipboard, icon pack
* stroked buttons, icon buttons, header action, typography
* fix password policy styles
* account selection
* account selection, lgn avatar
* mocks
* template fixes, animations scss
* checkbox, register temp
* checkbox appr
* fix checkbox, remove input interference
* select theme
* avatar script, user selection, password policy validation fix
* fix formfield state for register and change pwd
* footer, main style, qr code fix, mfa type fix, account sel, checkbox
* fotter tos, user select
* reverse buttons for intial submit action
* theme script, themed error messages, header img source
* content wrapper, i18n, mobile
* emptyline
* idp mixins, fix unstyled html
* register container
* register layout, list themes, policy theme, register org
* massive asset cleanup
* fix source path, add missing icon, fix complexity refs, prefix
* remove material icons, unused assets, fix icon font
* move icon pack
* avatar, contrast theme, error fix
* zitadel css map
* revert go mod
* fix mfa verify actions
* add idp styles
* fix google colors, idp styles
* fix: bugs
* fix register options, google
* fix script, mobile layout
* precompile font selection
* go mod tidy
* assets and cleanup
* input suffix, fix alignment, actions, add progress bar themes
* progress bar mixins, layout fixes
* remove test from loginname
* cleanup comments, scripts
* clear comments
* fix external back button
* fix mfa alignment
* fix actions layout, on dom change listener for suffix
* free tier change, success label
* fix: button font line-height
* remove tabindex
* remove comment
* remove comment
* Update internal/ui/login/handler/password_handler.go
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Peintner <csaq7175@uibk.ac.at>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
* feat: external users
* chore(console): dependencies (#1233)
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1214)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1101.1 to 0.1101.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 6.0.1 to 6.0.3 in /console (#1215)
Bumps [karma](https://github.com/karma-runner/karma) from 6.0.1 to 6.0.3.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.0.1...v6.0.3)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1216)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.1.1/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.1.1 to 11.1.2 in /console (#1217)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.1.1 to 11.1.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.1.1...v11.1.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* lock
* site deps
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: external users login
* feat: notify users
* fix: tests
* feat: cascade remove user grants on project remove
* feat: cascade remove user grants on user remove
* feat: cascade remove roles
* feat: verified domain
* feat: cascade remove on idp config remove
* feat: cascade remove on system idp config remove
* fix: get email texts with default language (#1238)
* fix: login policy
* fix: login policy
* fix: cascade delete on remove idp from default policy
* fix(login): mail verification (#1237)
* fix: mail verification
* not block, stroked
* fix: issues of new login ui (#1241)
* fix: i18n of register
* fix: autofocus
* feat(operator): zitadel and database operator (#1208)
* feat(operator): add base for zitadel operator
* fix(operator): changed pipeline to release operator
* fix(operator): fmt with only one parameter
* fix(operator): corrected workflow job name
* fix(zitadelctl): added restore and backuplist command
* fix(zitadelctl): scale for restore
* chore(container): use scratch for deploy container
* fix(zitadelctl): limit image to scratch
* fix(migration): added migration scripts for newer version
* fix(operator): changed handling of kubeconfig in operator logic
* fix(operator): changed handling of secrets in operator logic
* fix(operator): use new version of zitadel
* fix(operator): added path for migrations
* fix(operator): delete doublets of migration scripts
* fix(operator): delete subpaths and integrate logic into init container
* fix(operator): corrected path in dockerfile for local migrations
* fix(operator): added migrations for cockroachdb-secure
* fix(operator): delete logic for ambassador module
* fix(operator): added read and write secret commands
* fix(operator): correct and align operator pipeline with zitadel pipeline
* fix(operator): correct yaml error in operator pipeline
* fix(operator): correct action name in operator pipeline
* fix(operator): correct case-sensitive filename in operator pipeline
* fix(operator): upload artifacts from buildx output
* fix(operator): corrected attribute spelling error
* fix(operator): combined jobs for operator binary and image
* fix(operator): added missing comma in operator pipeline
* fix(operator): added codecov for operator image
* fix(operator): added codecov for operator image
* fix(testing): code changes for testing and several unit-tests (#1009)
* fix(operator): usage of interface of kubernetes client for testing and several unit-tests
* fix(operator): several unit-tests
* fix(operator): several unit-tests
* fix(operator): changed order for the operator logic
* fix(operator): added version of zitadelctl from semantic release
* fix(operator): corrected function call with version of zitadelctl
* fix(operator): corrected function call with version of zitadelctl
* fix(operator): add check output to operator release pipeline
* fix(operator): set --short length everywhere to 12
* fix(operator): zitadel setup in job instead of exec with several unit tests
* fix(operator): fixes to combine newest zitadel and testing branch
* fix(operator): corrected path in Dockerfile
* fix(operator): fixed unit-test that was ignored during changes
* fix(operator): fixed unit-test that was ignored during changes
* fix(operator): corrected Dockerfile to correctly use env variable
* fix(operator): quickfix takeoff deployment
* fix(operator): corrected the clusterrolename in the applied artifacts
* fix: update secure migrations
* fix(operator): migrations (#1057)
* fix(operator): copied migrations from orbos repository
* fix(operator): newest migrations
* chore: use cockroach-secure
* fix: rename migration
* fix: remove insecure cockroach migrations
Co-authored-by: Stefan Benz <stefan@caos.ch>
* fix: finalize labels
* fix(operator): cli logging concurrent and fixe deployment of operator during restore
* fix: finalize labels and cli commands
* fix: restore
* chore: cockroachdb is always secure
* chore: use orbos consistent-labels latest commit
* test: make tests compatible with new labels
* fix: default to sa token for start command
* fix: use cockroachdb v12.02
* fix: don't delete flyway user
* test: fix migration test
* fix: use correct table qualifiers
* fix: don't alter sequence ownership
* fix: upgrade flyway
* fix: change ownership of all dbs and tables to admin user
* fix: change defaultdb user
* fix: treat clientid status codes >= 400 as errors
* fix: reconcile specified ZITADEL version, not binary version
* fix: add ca-certs
* fix: use latest orbos code
* fix: use orbos with fixed race condition
* fix: use latest ORBOS code
* fix: use latest ORBOS code
* fix: make migration and scaling around restoring work
* fix(operator): move zitadel operator
* chore(migrations): include owner change migration
* feat(db): add code base for database operator
* fix(db): change used image registry for database operator
* fix(db): generated mock
* fix(db): add accidentally ignored file
* fix(db): add cockroachdb backup image to pipeline
* fix(db): correct pipeline and image versions
* fix(db): correct version of used orbos
* fix(db): correct database import
* fix(db): go mod tidy
* fix(db): use new version for orbos
* fix(migrations): include migrations into zitadelctl binary (#1211)
* fix(db): use statik to integrate migrations into binary
* fix(migrations): corrections unit tests and pipeline for integrated migrations into zitadelctl binary
* fix(migrations): correction in dockerfile for pipeline build
* fix(migrations): correction in dockerfile for pipeline build
* fix(migrations): dockerfile changes for cache optimization
* fix(database): correct used part-of label in database operator
* fix(database): correct used selectable label in zitadel operator
* fix(operator): correct lables for user secrets in zitadel operator
* fix(operator): correct lables for service test in zitadel operator
* fix: don't enable database features for user operations (#1227)
* fix: don't enable database features for user operations
* fix: omit database feature for connection info adapter
* fix: use latest orbos version
* fix: update ORBOS (#1240)
Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Elio Bischof <eliobischof@gmail.com>
* Merge branch 'new-eventstore' into cascades
# Conflicts:
# internal/auth/repository/auth_request.go
# internal/auth/repository/eventsourcing/eventstore/auth_request.go
# internal/management/repository/eventsourcing/eventstore/user_grant.go
# internal/management/repository/user_grant.go
# internal/ui/login/handler/external_login_handler.go
# internal/ui/login/handler/external_register_handler.go
# internal/ui/login/handler/init_password_handler.go
# internal/ui/login/handler/register_handler.go
# internal/user/repository/view/model/notify_user.go
# internal/v2/command/org_policy_login.go
# internal/v2/command/project.go
# internal/v2/command/user.go
# internal/v2/command/user_human.go
# internal/v2/command/user_human_externalidp.go
# internal/v2/command/user_human_init.go
# internal/v2/command/user_human_password.go
# internal/v2/command/user_human_webauthn.go
# internal/v2/domain/next_step.go
# internal/v2/domain/policy_login.go
# internal/v2/domain/request.go
* Merge branch 'new-eventstore' into cascades
# Conflicts:
# internal/auth/repository/auth_request.go
# internal/auth/repository/eventsourcing/eventstore/auth_request.go
# internal/management/repository/eventsourcing/eventstore/user_grant.go
# internal/management/repository/user_grant.go
# internal/ui/login/handler/external_login_handler.go
# internal/ui/login/handler/external_register_handler.go
# internal/ui/login/handler/init_password_handler.go
# internal/ui/login/handler/register_handler.go
# internal/user/repository/view/model/notify_user.go
# internal/v2/command/org_policy_login.go
# internal/v2/command/project.go
# internal/v2/command/user.go
# internal/v2/command/user_human.go
# internal/v2/command/user_human_externalidp.go
# internal/v2/command/user_human_init.go
# internal/v2/command/user_human_password.go
# internal/v2/command/user_human_webauthn.go
# internal/v2/domain/next_step.go
# internal/v2/domain/policy_login.go
# internal/v2/domain/request.go
* chore: add local migrate_local.go again (#1261)
* fix: logging on cascade removes
* fix: migrations
* fix: tests
* fix: tests
* chore: pass params in migrate_local.go
* migrations
* fix query
* fix tests
* fix tests
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael Waeger <49439088+michaelulrichwaeger@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Maximilian Peintner <csaq7175@uibk.ac.at>
Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Elio Bischof <eliobischof@gmail.com>
2021-02-09 10:14:40 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2021-02-18 14:48:27 +01:00
|
|
|
err = AppendAndReduce(addedOrg, pushedEvents...)
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return orgWriteModelToOrg(addedOrg), nil
|
|
|
|
}
|
|
|
|
|
2021-05-04 11:09:24 +02:00
|
|
|
func (c *Commands) ChangeOrg(ctx context.Context, orgID, name string) (*domain.ObjectDetails, error) {
|
2022-08-19 15:00:14 +02:00
|
|
|
name = strings.TrimSpace(name)
|
2021-05-04 11:09:24 +02:00
|
|
|
if orgID == "" || name == "" {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowInvalidArgument(nil, "EVENT-Mf9sd", "Errors.Org.Invalid")
|
2021-05-04 11:09:24 +02:00
|
|
|
}
|
2022-07-28 15:42:35 +02:00
|
|
|
|
2021-05-04 11:09:24 +02:00
|
|
|
orgWriteModel, err := c.getOrgWriteModelByID(ctx, orgID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
if !isOrgStateExists(orgWriteModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "ORG-1MRds", "Errors.Org.NotFound")
|
2021-05-04 11:09:24 +02:00
|
|
|
}
|
|
|
|
if orgWriteModel.Name == name {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(nil, "ORG-4VSdf", "Errors.Org.NotChanged")
|
2021-05-04 11:09:24 +02:00
|
|
|
}
|
|
|
|
orgAgg := OrgAggregateFromWriteModel(&orgWriteModel.WriteModel)
|
2022-01-03 09:19:07 +01:00
|
|
|
events := make([]eventstore.Command, 0)
|
2021-05-04 11:09:24 +02:00
|
|
|
events = append(events, org.NewOrgChangedEvent(ctx, orgAgg, orgWriteModel.Name, name))
|
|
|
|
changeDomainEvents, err := c.changeDefaultDomain(ctx, orgID, name)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
if len(changeDomainEvents) > 0 {
|
|
|
|
events = append(events, changeDomainEvents...)
|
|
|
|
}
|
2022-01-03 09:19:07 +01:00
|
|
|
pushedEvents, err := c.eventstore.Push(ctx, events...)
|
2021-05-04 11:09:24 +02:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
err = AppendAndReduce(orgWriteModel, pushedEvents...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return writeModelToObjectDetails(&orgWriteModel.WriteModel), nil
|
|
|
|
}
|
|
|
|
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
func (c *Commands) DeactivateOrg(ctx context.Context, orgID string) (*domain.ObjectDetails, error) {
|
2021-02-24 11:17:39 +01:00
|
|
|
orgWriteModel, err := c.getOrgWriteModelByID(ctx, orgID)
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
return nil, err
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
if !isOrgStateExists(orgWriteModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "ORG-oL9nT", "Errors.Org.NotFound")
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
if orgWriteModel.State == domain.OrgStateInactive {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(nil, "EVENT-Dbs2g", "Errors.Org.AlreadyDeactivated")
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
orgAgg := OrgAggregateFromWriteModel(&orgWriteModel.WriteModel)
|
2022-01-03 09:19:07 +01:00
|
|
|
pushedEvents, err := c.eventstore.Push(ctx, org.NewOrgDeactivatedEvent(ctx, orgAgg))
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
err = AppendAndReduce(orgWriteModel, pushedEvents...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return writeModelToObjectDetails(&orgWriteModel.WriteModel), nil
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
func (c *Commands) ReactivateOrg(ctx context.Context, orgID string) (*domain.ObjectDetails, error) {
|
2021-02-24 11:17:39 +01:00
|
|
|
orgWriteModel, err := c.getOrgWriteModelByID(ctx, orgID)
|
2021-01-18 11:24:15 +01:00
|
|
|
if err != nil {
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
return nil, err
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
if !isOrgStateExists(orgWriteModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "ORG-Dgf3g", "Errors.Org.NotFound")
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
if orgWriteModel.State == domain.OrgStateActive {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(nil, "EVENT-bfnrh", "Errors.Org.AlreadyActive")
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
orgAgg := OrgAggregateFromWriteModel(&orgWriteModel.WriteModel)
|
2022-01-03 09:19:07 +01:00
|
|
|
pushedEvents, err := c.eventstore.Push(ctx, org.NewOrgReactivatedEvent(ctx, orgAgg))
|
feat: protos refactoring
* start with user
* user first try done in all services
* user, org, idp for discussion
* remove unused stuff
* bla
* dockerbuild
* rename search, get multiple to list...
* add annotation
* update proto dependencies
* update proto dependencies
* change proto imports
* replace all old imports
* fix go out
* remove unused lines
* correct protoc flags
* grpc and openapi flags
* go out source path relative
* -p
* remove dead code
* sourcepath relative
* ls
* is onenapi the problem?
* hobla
* authoption output
* wrong field name
* gopf
* correct option, add correct flags
* small improvments
* SIMPLYFY
* relative path
* gopf bin ich en tubel
* correct path
* default policies in admin
* grpc generation in one file
* remove non ascii
* metadata on manipulations
* correct auth_option import
* fixes
* larry
* idp provider to idp
* fix generate
* admin and auth nearly done
* admin and auth nearly done
* gen
* healthz
* imports
* deleted too much imports
* fix org
* add import
* imports
* import
* naming
* auth_opt
* gopf
* management
* imports
* _TYPE_UNSPECIFIED
* improts
* auth opts
* management policies
* imports
* passwordlessType to MFAType
* auth_opt
* add user grant calls
* add missing messages
* result
* fix option
* improvements
* ids
* fix http
* imports
* fixes
* fields
* body
* add fields
* remove wrong member query
* fix request response
* fixes
* add copy files
* variable versions
* generate all files
* improvements
* add dependencies
* factors
* user session
* oidc information, iam
* remove unused file
* changes
* enums
* dockerfile
* fix build
* remove unused folder
* update readme for build
* move old server impl
* add event type to change
* some changes
* start admin
* remove wrong field
* admin only list calls missing
* fix proto numbers
* surprisingly it compiles
* service ts changes
* admin mgmt
* mgmt
* auth manipulation and gets done, lists missing
* validations and some field changes
* validations
* enum validations
* remove todo
* move proto files to proto/zitadel
* change proto path in dockerfile
* it compiles!
* add validate import
* remove duplicate import
* fix protos
* fix import
* tests
* cleanup
* remove unimplemented methods
* iam member multiple queries
* all auth and admin calls
* add initial password on crate human
* message names
* management user server
* machine done
* fix: todos (#1346)
* fix: pub sub in new eventstore
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix: todos
* fix tests
* fix: search method domain
* admin service, user import type typescript
* admin changes
* admin changes
* fix: search method domain
* more user grpc and begin org, fix configs
* fix: return object details
* org grpc
* remove creation date add details
* app
* fix: return object details
* fix: return object details
* mgmt service, project members
* app
* fix: convert policies
* project, members, granted projects, searches
* fix: convert usergrants
* fix: convert usergrants
* auth user detail, user detail, mfa, second factor, auth
* fix: convert usergrants
* mfa, memberships, password, owned proj detail
* fix: convert usergrants
* project grant
* missing details
* changes, userview
* idp table, keys
* org list and user table filter
* unify rest paths (#1381)
* unify rest paths
* post for all searches,
mfa to multi_factor,
secondfactor to second_factor
* remove v1
* fix tests
* rename api client key to app key
* machine keys, age policy
* user list, machine keys, changes
* fix: org states
* add default flag to policy
* second factor to type
* idp id
* app type
* unify ListQuery, ListDetails, ObjectDetails field names
* user grants, apps, memberships
* fix type params
* metadata to detail, linke idps
* api create, membership, app detail, create
* idp, app, policy
* queries, multi -> auth factors and missing fields
* update converters
* provider to user, remove old mgmt refs
* temp remove authfactor dialog, build finish
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Fabiennne <fabienne.gerschwiler@gmail.com>
2021-03-09 10:30:11 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
err = AppendAndReduce(orgWriteModel, pushedEvents...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return writeModelToObjectDetails(&orgWriteModel.WriteModel), nil
|
2021-01-18 11:24:15 +01:00
|
|
|
}
|
|
|
|
|
2022-11-30 17:01:17 +01:00
|
|
|
func (c *Commands) RemoveOrg(ctx context.Context, id string) (*domain.ObjectDetails, error) {
|
|
|
|
orgAgg := org.NewAggregate(id)
|
|
|
|
|
|
|
|
cmds, err := preparation.PrepareCommands(ctx, c.eventstore.Filter, c.prepareRemoveOrg(orgAgg))
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
events, err := c.eventstore.Push(ctx, cmds...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return &domain.ObjectDetails{
|
|
|
|
Sequence: events[len(events)-1].Sequence(),
|
2023-10-19 12:19:10 +02:00
|
|
|
EventDate: events[len(events)-1].CreatedAt(),
|
2022-11-30 17:01:17 +01:00
|
|
|
ResourceOwner: events[len(events)-1].Aggregate().InstanceID,
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Commands) prepareRemoveOrg(a *org.Aggregate) preparation.Validation {
|
|
|
|
return func() (preparation.CreateCommands, error) {
|
|
|
|
return func(ctx context.Context, filter preparation.FilterToQueryReducer) ([]eventstore.Command, error) {
|
2022-12-14 11:44:43 +01:00
|
|
|
instance := authz.GetInstance(ctx)
|
|
|
|
if a.ID == instance.DefaultOrganisationID() {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(nil, "COMMA-wG9p1", "Errors.Org.DefaultOrgNotDeletable")
|
2022-12-14 11:44:43 +01:00
|
|
|
}
|
2024-07-03 17:00:56 +02:00
|
|
|
|
2022-12-14 11:44:43 +01:00
|
|
|
err := c.checkProjectExists(ctx, instance.ProjectID(), a.ID)
|
|
|
|
// if there is no error, the ZITADEL project was found on the org to be deleted
|
|
|
|
if err == nil {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(err, "COMMA-AF3JW", "Errors.Org.ZitadelOrgNotDeletable")
|
2022-12-14 11:44:43 +01:00
|
|
|
}
|
|
|
|
// "precondition failed" error means the project does not exist, return other errors
|
2023-12-08 16:30:55 +02:00
|
|
|
if !zerrors.IsPreconditionFailed(err) {
|
2022-12-14 11:44:43 +01:00
|
|
|
return nil, err
|
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
writeModel, err := c.getOrgWriteModelByID(ctx, a.ID)
|
|
|
|
if err != nil {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowPreconditionFailed(err, "COMMA-wG9p1", "Errors.Org.NotFound")
|
2022-11-30 17:01:17 +01:00
|
|
|
}
|
|
|
|
if !isOrgStateExists(writeModel.State) {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "COMMA-aps2n", "Errors.Org.NotFound")
|
2022-11-30 17:01:17 +01:00
|
|
|
}
|
|
|
|
|
2023-12-21 10:03:37 +01:00
|
|
|
domainPolicy, err := c.domainPolicyWriteModel(ctx, a.ID)
|
2022-11-30 17:01:17 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
usernames, err := OrgUsers(ctx, filter, a.ID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
domains, err := OrgDomains(ctx, filter, a.ID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
links, err := OrgUserIDPLinks(ctx, filter, a.ID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
entityIds, err := OrgSamlEntityIDs(ctx, filter, a.ID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return []eventstore.Command{org.NewOrgRemovedEvent(ctx, &a.Aggregate, writeModel.Name, usernames, domainPolicy.UserLoginMustBeDomain, domains, links, entityIds)}, nil
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgUserIDPLinks(ctx context.Context, filter preparation.FilterToQueryReducer, orgID string) ([]*domain.UserIDPLink, error) {
|
|
|
|
events, err := filter(ctx, eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
|
|
|
|
ResourceOwner(orgID).
|
|
|
|
OrderAsc().
|
|
|
|
AddQuery().
|
2023-04-26 16:19:32 +02:00
|
|
|
AggregateTypes(user.AggregateType).
|
2022-11-30 17:01:17 +01:00
|
|
|
EventTypes(
|
2023-04-26 16:19:32 +02:00
|
|
|
user.UserIDPLinkAddedType, user.UserIDPLinkRemovedType, user.UserIDPLinkCascadeRemovedType,
|
2022-11-30 17:01:17 +01:00
|
|
|
).Builder())
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
links := make([]*domain.UserIDPLink, 0)
|
|
|
|
for _, event := range events {
|
|
|
|
switch eventTyped := event.(type) {
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.UserIDPLinkAddedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
links = append(links, &domain.UserIDPLink{
|
|
|
|
IDPConfigID: eventTyped.IDPConfigID,
|
|
|
|
ExternalUserID: eventTyped.ExternalUserID,
|
|
|
|
DisplayName: eventTyped.DisplayName,
|
|
|
|
})
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.UserIDPLinkRemovedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
for i := range links {
|
|
|
|
if links[i].ExternalUserID == eventTyped.ExternalUserID &&
|
|
|
|
links[i].IDPConfigID == eventTyped.IDPConfigID {
|
|
|
|
links[i] = links[len(links)-1]
|
|
|
|
links[len(links)-1] = nil
|
|
|
|
links = links[:len(links)-1]
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.UserIDPLinkCascadeRemovedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
for i := range links {
|
|
|
|
if links[i].ExternalUserID == eventTyped.ExternalUserID &&
|
|
|
|
links[i].IDPConfigID == eventTyped.IDPConfigID {
|
|
|
|
links[i] = links[len(links)-1]
|
|
|
|
links[len(links)-1] = nil
|
|
|
|
links = links[:len(links)-1]
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return links, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type samlEntityID struct {
|
|
|
|
appID string
|
|
|
|
entityID string
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgSamlEntityIDs(ctx context.Context, filter preparation.FilterToQueryReducer, orgID string) ([]string, error) {
|
|
|
|
events, err := filter(ctx, eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
|
|
|
|
ResourceOwner(orgID).
|
|
|
|
OrderAsc().
|
|
|
|
AddQuery().
|
|
|
|
AggregateTypes(project.AggregateType).
|
|
|
|
EventTypes(
|
|
|
|
project.SAMLConfigAddedType, project.SAMLConfigChangedType, project.ApplicationRemovedType,
|
|
|
|
).Builder())
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
entityIDs := make([]samlEntityID, 0)
|
|
|
|
for _, event := range events {
|
|
|
|
switch eventTyped := event.(type) {
|
|
|
|
case *project.SAMLConfigAddedEvent:
|
|
|
|
entityIDs = append(entityIDs, samlEntityID{appID: eventTyped.AppID, entityID: eventTyped.EntityID})
|
|
|
|
case *project.SAMLConfigChangedEvent:
|
|
|
|
for i := range entityIDs {
|
|
|
|
if entityIDs[i].appID == eventTyped.AppID {
|
|
|
|
entityIDs[i].entityID = eventTyped.EntityID
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case *project.ApplicationRemovedEvent:
|
|
|
|
for i := range entityIDs {
|
|
|
|
if entityIDs[i].appID == eventTyped.AppID {
|
|
|
|
entityIDs[i] = entityIDs[len(entityIDs)-1]
|
|
|
|
entityIDs = entityIDs[:len(entityIDs)-1]
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ids := make([]string, len(entityIDs))
|
|
|
|
for i := range entityIDs {
|
|
|
|
ids[i] = entityIDs[i].entityID
|
|
|
|
}
|
|
|
|
return ids, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgDomains(ctx context.Context, filter preparation.FilterToQueryReducer, orgID string) ([]string, error) {
|
|
|
|
events, err := filter(ctx, eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
|
|
|
|
ResourceOwner(orgID).
|
|
|
|
OrderAsc().
|
|
|
|
AddQuery().
|
|
|
|
AggregateTypes(org.AggregateType).
|
|
|
|
EventTypes(
|
|
|
|
org.OrgDomainVerifiedEventType,
|
|
|
|
org.OrgDomainRemovedEventType,
|
|
|
|
).Builder())
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
names := make([]string, 0)
|
|
|
|
for _, event := range events {
|
|
|
|
switch eventTyped := event.(type) {
|
|
|
|
case *org.DomainVerifiedEvent:
|
|
|
|
names = append(names, eventTyped.Domain)
|
|
|
|
case *org.DomainRemovedEvent:
|
|
|
|
for i := range names {
|
|
|
|
if names[i] == eventTyped.Domain {
|
|
|
|
names[i] = names[len(names)-1]
|
|
|
|
names = names[:len(names)-1]
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return names, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type userIDName struct {
|
|
|
|
name string
|
|
|
|
id string
|
|
|
|
}
|
|
|
|
|
|
|
|
func OrgUsers(ctx context.Context, filter preparation.FilterToQueryReducer, orgID string) ([]string, error) {
|
|
|
|
events, err := filter(ctx, eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
|
|
|
|
InstanceID(authz.GetInstance(ctx).InstanceID()).
|
|
|
|
ResourceOwner(orgID).
|
|
|
|
OrderAsc().
|
|
|
|
AddQuery().
|
2023-04-26 16:19:32 +02:00
|
|
|
AggregateTypes(user.AggregateType).
|
2022-11-30 17:01:17 +01:00
|
|
|
EventTypes(
|
2023-04-26 16:19:32 +02:00
|
|
|
user.HumanAddedType,
|
|
|
|
user.MachineAddedEventType,
|
|
|
|
user.HumanRegisteredType,
|
|
|
|
user.UserDomainClaimedType,
|
|
|
|
user.UserUserNameChangedType,
|
|
|
|
user.UserRemovedType,
|
2022-11-30 17:01:17 +01:00
|
|
|
).Builder())
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
users := make([]userIDName, 0)
|
|
|
|
for _, event := range events {
|
|
|
|
switch eventTyped := event.(type) {
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.HumanAddedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID})
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.MachineAddedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID})
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.HumanRegisteredEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID})
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.DomainClaimedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
for i := range users {
|
|
|
|
if users[i].id == eventTyped.Aggregate().ID {
|
|
|
|
users[i].name = eventTyped.UserName
|
|
|
|
}
|
|
|
|
}
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.UsernameChangedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
for i := range users {
|
|
|
|
if users[i].id == eventTyped.Aggregate().ID {
|
|
|
|
users[i].name = eventTyped.UserName
|
|
|
|
}
|
|
|
|
}
|
2023-04-26 16:19:32 +02:00
|
|
|
case *user.UserRemovedEvent:
|
2022-11-30 17:01:17 +01:00
|
|
|
for i := range users {
|
|
|
|
if users[i].id == eventTyped.Aggregate().ID {
|
|
|
|
users[i] = users[len(users)-1]
|
|
|
|
users = users[:len(users)-1]
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
names := make([]string, len(users))
|
|
|
|
for i := range users {
|
|
|
|
names[i] = users[i].name
|
|
|
|
}
|
|
|
|
return names, nil
|
|
|
|
}
|
|
|
|
|
2022-06-03 14:30:39 +02:00
|
|
|
func ExistsOrg(ctx context.Context, filter preparation.FilterToQueryReducer, id string) (exists bool, err error) {
|
|
|
|
events, err := filter(ctx, eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent).
|
2022-11-30 17:01:17 +01:00
|
|
|
InstanceID(authz.GetInstance(ctx).InstanceID()).
|
2022-06-03 14:30:39 +02:00
|
|
|
ResourceOwner(id).
|
|
|
|
OrderAsc().
|
|
|
|
AddQuery().
|
|
|
|
AggregateTypes(org.AggregateType).
|
|
|
|
AggregateIDs(id).
|
|
|
|
EventTypes(
|
|
|
|
org.OrgAddedEventType,
|
|
|
|
org.OrgDeactivatedEventType,
|
|
|
|
org.OrgReactivatedEventType,
|
|
|
|
org.OrgRemovedEventType,
|
|
|
|
).Builder())
|
|
|
|
if err != nil {
|
|
|
|
return false, err
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, event := range events {
|
|
|
|
switch event.(type) {
|
|
|
|
case *org.OrgAddedEvent, *org.OrgReactivatedEvent:
|
|
|
|
exists = true
|
|
|
|
case *org.OrgDeactivatedEvent, *org.OrgRemovedEvent:
|
|
|
|
exists = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return exists, nil
|
|
|
|
}
|
|
|
|
|
2022-07-28 15:42:35 +02:00
|
|
|
func (c *Commands) addOrgWithID(ctx context.Context, organisation *domain.Org, orgID string, claimedUserIDs []string) (_ *eventstore.Aggregate, _ *OrgWriteModel, _ []eventstore.Command, err error) {
|
2022-03-28 10:05:09 +02:00
|
|
|
if !organisation.IsValid() {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, nil, nil, zerrors.ThrowInvalidArgument(nil, "COMM-deLSk", "Errors.Org.Invalid")
|
2021-01-08 11:33:45 +01:00
|
|
|
}
|
|
|
|
|
2022-07-28 15:42:35 +02:00
|
|
|
organisation.AggregateID = orgID
|
feat: trusted (instance) domains (#8369)
# Which Problems Are Solved
ZITADEL currently selects the instance context based on a HTTP header
(see https://github.com/zitadel/zitadel/issues/8279#issue-2399959845 and
checks it against the list of instance domains. Let's call it instance
or API domain.
For any context based URL (e.g. OAuth, OIDC, SAML endpoints, links in
emails, ...) the requested domain (instance domain) will be used. Let's
call it the public domain.
In cases of proxied setups, all exposed domains (public domains) require
the domain to be managed as instance domain.
This can either be done using the "ExternalDomain" in the runtime config
or via system API, which requires a validation through CustomerPortal on
zitadel.cloud.
# How the Problems Are Solved
- Two new headers / header list are added:
- `InstanceHostHeaders`: an ordered list (first sent wins), which will
be used to match the instance.
(For backward compatibility: the `HTTP1HostHeader`, `HTTP2HostHeader`
and `forwarded`, `x-forwarded-for`, `x-forwarded-host` are checked
afterwards as well)
- `PublicHostHeaders`: an ordered list (first sent wins), which will be
used as public host / domain. This will be checked against a list of
trusted domains on the instance.
- The middleware intercepts all requests to the API and passes a
`DomainCtx` object with the hosts and protocol into the context
(previously only a computed `origin` was passed)
- HTTP / GRPC server do not longer try to match the headers to instances
themself, but use the passed `http.DomainContext` in their interceptors.
- The `RequestedHost` and `RequestedDomain` from authz.Instance are
removed in favor of the `http.DomainContext`
- When authenticating to or signing out from Console UI, the current
`http.DomainContext(ctx).Origin` (already checked by instance
interceptor for validity) is used to compute and dynamically add a
`redirect_uri` and `post_logout_redirect_uri`.
- Gateway passes all configured host headers (previously only did
`x-zitadel-*`)
- Admin API allows to manage trusted domain
# Additional Changes
None
# Additional Context
- part of #8279
- open topics:
- "single-instance" mode
- Console UI
2024-07-31 17:00:38 +02:00
|
|
|
organisation.AddIAMDomain(http_util.DomainContext(ctx).RequestedDomain())
|
2021-01-08 11:33:45 +01:00
|
|
|
addedOrg := NewOrgWriteModel(organisation.AggregateID)
|
|
|
|
|
|
|
|
orgAgg := OrgAggregateFromWriteModel(&addedOrg.WriteModel)
|
2022-01-03 09:19:07 +01:00
|
|
|
events := []eventstore.Command{
|
2021-02-18 14:48:27 +01:00
|
|
|
org.NewOrgAddedEvent(ctx, orgAgg, organisation.Name),
|
|
|
|
}
|
2021-01-08 11:33:45 +01:00
|
|
|
for _, orgDomain := range organisation.Domains {
|
2021-05-04 11:09:24 +02:00
|
|
|
orgDomainEvents, err := c.addOrgDomain(ctx, orgAgg, NewOrgDomainWriteModel(orgAgg.ID, orgDomain.Domain), orgDomain, claimedUserIDs)
|
feat: cascade changes and removes (#1239)
* chore(site): dependabot deps (#1148)
* chore(deps): bump highlight.js from 10.4.1 to 10.5.0 in /site (#1143)
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 10.4.1 to 10.5.0.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/10.4.1...10.5.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/plugin-transform-runtime in /site (#1144)
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.12.1 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-plugin-transform-runtime)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump sirv from 1.0.7 to 1.0.10 in /site (#1145)
Bumps [sirv](https://github.com/lukeed/sirv) from 1.0.7 to 1.0.10.
- [Release notes](https://github.com/lukeed/sirv/releases)
- [Commits](https://github.com/lukeed/sirv/compare/v1.0.7...v1.0.10)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup from 2.34.0 to 2.35.1 in /site (#1142)
Bumps [rollup](https://github.com/rollup/rollup) from 2.34.0 to 2.35.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.34.0...v2.35.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-node-resolve in /site (#1141)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 10.0.0 to 11.0.1.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v10.0.0...commonjs-v11.0.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump marked from 1.2.5 to 1.2.7 in /site (#1140)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.5 to 1.2.7.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.5...v1.2.7)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/core from 7.12.9 to 7.12.10 in /site (#1139)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.9 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-core)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup-plugin-svelte from 6.1.1 to 7.0.0 in /site (#1138)
Bumps [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) from 6.1.1 to 7.0.0.
- [Release notes](https://github.com/sveltejs/rollup-plugin-svelte/releases)
- [Changelog](https://github.com/sveltejs/rollup-plugin-svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/rollup-plugin-svelte/compare/v6.1.1...v7.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/preset-env from 7.12.1 to 7.12.11 in /site (#1137)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.1 to 7.12.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.11/packages/babel-preset-env)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* downgrade svelte plugin
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(console): dependabot deps (#1147)
* chore(deps-dev): bump @types/node from 14.14.13 to 14.14.19 in /console (#1146)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.13 to 14.14.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump ts-protoc-gen from 0.13.0 to 0.14.0 in /console (#1129)
Bumps [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen) from 0.13.0 to 0.14.0.
- [Release notes](https://github.com/improbable-eng/ts-protoc-gen/releases)
- [Changelog](https://github.com/improbable-eng/ts-protoc-gen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/improbable-eng/ts-protoc-gen/compare/0.13.0...0.14.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1128)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.4 to 11.0.5.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.0.5/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.4 to 11.0.5 in /console (#1127)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.4 to 11.0.5.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.4...v11.0.5)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1126)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.4 to 0.1100.5.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* audit
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: e-mail templates (#1158)
* View definition added
* Get templates and texts from the database.
* Fill in texts in templates
* Fill in texts in templates
* Client API added
* Weekly backup
* Weekly backup
* Daily backup
* Weekly backup
* Tests added
* Corrections from merge branch
* Fixes from pull request review
* chore(console): dependencies (#1189)
* chore(deps-dev): bump @angular/language-service in /console (#1187)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.5 to 11.0.9.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.0.9/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump google-proto-files from 2.3.0 to 2.4.0 in /console (#1186)
Bumps [google-proto-files](https://github.com/googleapis/nodejs-proto-files) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/googleapis/nodejs-proto-files/releases)
- [Changelog](https://github.com/googleapis/nodejs-proto-files/blob/master/CHANGELOG.md)
- [Commits](https://github.com/googleapis/nodejs-proto-files/compare/v2.3.0...v2.4.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @types/node from 14.14.19 to 14.14.21 in /console (#1185)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.19 to 14.14.21.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.5 to 11.0.7 in /console (#1184)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.5 to 11.0.7.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.5...v11.0.7)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 5.2.3 to 6.0.0 in /console (#1183)
Bumps [karma](https://github.com/karma-runner/karma) from 5.2.3 to 6.0.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.3...v6.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1182)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.5 to 0.1100.7.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: change login to command side
* feat: change login to command side
* fix: fix push on user
* fix(console): trigger unauthenticated dialog only once (#1170)
* fix: trigger dialog once
* remove log
* typed trigger
* chore(console): dependencies (#1205)
* chore(deps-dev): bump stylelint from 13.8.0 to 13.9.0 in /console (#1204)
Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.8.0 to 13.9.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/13.8.0...13.9.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1203)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.0.9 to 11.1.0.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.1.0/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 6.0.0 to 6.0.1 in /console (#1202)
Bumps [karma](https://github.com/karma-runner/karma) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.0.0...v6.0.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.0.7 to 11.1.1 in /console (#1201)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.0.7 to 11.1.1.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.0.7...v11.1.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @types/jasmine from 3.6.2 to 3.6.3 in /console (#1200)
Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 3.6.2 to 3.6.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps-dev): bump @types/node from 14.14.21 to 14.14.22 in /console (#1199)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.21 to 14.14.22.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1198)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1100.7 to 0.1101.1.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* chore(deps): bump angularx-qrcode from 10.0.11 to 11.0.0 in /console (#1197)
Bumps [angularx-qrcode](https://github.com/cordobo/angularx-qrcode) from 10.0.11 to 11.0.0.
- [Release notes](https://github.com/cordobo/angularx-qrcode/releases)
- [Commits](https://github.com/cordobo/angularx-qrcode/compare/10.0.11...11.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix pack lock
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: handle sequence correctly in subscription (#1209)
* feat: user command side
* feat: sign out
* feat: command side login
* feat: command side login
* feat: fix register user
* feat: fix register user
* feat: fix web auth n events
* feat: add machine keys
* feat: send codes
* feat: move authrequest to domain
* feat: move authrequest to domain
* feat: webauthn working
* fix: correct master after merges again (#1230)
* chore(docs): correct `iss` claim of jwt profile (#1229)
* core(docs): correct `iss` claim of jwt profile
* fix: correct master after merges again (#1230)
* feat(login): new palette based styles (#1149)
* chore(deps-dev): bump rollup from 2.33.2 to 2.34.0 in /site (#1040)
Bumps [rollup](https://github.com/rollup/rollup) from 2.33.2 to 2.34.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.33.2...v2.34.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump svelte-i18n from 3.2.5 to 3.3.0 in /site (#1039)
Bumps [svelte-i18n](https://github.com/kaisermann/svelte-i18n) from 3.2.5 to 3.3.0.
- [Release notes](https://github.com/kaisermann/svelte-i18n/releases)
- [Changelog](https://github.com/kaisermann/svelte-i18n/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kaisermann/svelte-i18n/compare/v3.2.5...v3.3.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-url from 5.0.1 to 6.0.0 in /site (#1038)
Bumps [@rollup/plugin-url](https://github.com/rollup/plugins) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/url-v5.0.1...url-v6.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump svelte from 3.29.7 to 3.30.1 in /site (#1037)
Bumps [svelte](https://github.com/sveltejs/svelte) from 3.29.7 to 3.30.1.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/compare/v3.29.7...v3.30.1)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump marked from 1.2.4 to 1.2.5 in /site (#1036)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.4 to 1.2.5.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.4...v1.2.5)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/core from 7.12.3 to 7.12.9 in /site (#1035)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.3 to 7.12.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.9/packages/babel-core)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump rollup-plugin-svelte from 6.1.1 to 7.0.0 in /site (#1034)
Bumps [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) from 6.1.1 to 7.0.0.
- [Release notes](https://github.com/sveltejs/rollup-plugin-svelte/releases)
- [Changelog](https://github.com/sveltejs/rollup-plugin-svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/rollup-plugin-svelte/compare/v6.1.1...v7.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-commonjs in /site (#1033)
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins) from 15.1.0 to 17.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v15.1.0...commonjs-v17.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @rollup/plugin-node-resolve in /site (#1032)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v10.0.0...commonjs-v11.0.0)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @babel/preset-env from 7.12.1 to 7.12.7 in /site (#1031)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.1 to 7.12.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.7/packages/babel-preset-env)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* go
* bundle files, lgn-color, legacy theme
* remove old references
* light dark context, button styles, zitadel brand
* button theme, edit templates
* typography theme mixins
* input styles, container, extend light dark palette
* footer, palette, container
* container, label, assets, header
* action container, input, typography label, adapt button theme
* a and footer styles, adapt palette
* user log profile, resourcetempurl
* postinstall againnn
* wrochage
* rm local grpc
* button elevation, helper for components
* radio
* radio button mixins, bundle
* qr code styles, secret clipboard, icon pack
* stroked buttons, icon buttons, header action, typography
* fix password policy styles
* account selection
* account selection, lgn avatar
* mocks
* template fixes, animations scss
* checkbox, register temp
* checkbox appr
* fix checkbox, remove input interference
* select theme
* avatar script, user selection, password policy validation fix
* fix formfield state for register and change pwd
* footer, main style, qr code fix, mfa type fix, account sel, checkbox
* fotter tos, user select
* reverse buttons for intial submit action
* theme script, themed error messages, header img source
* content wrapper, i18n, mobile
* emptyline
* idp mixins, fix unstyled html
* register container
* register layout, list themes, policy theme, register org
* massive asset cleanup
* fix source path, add missing icon, fix complexity refs, prefix
* remove material icons, unused assets, fix icon font
* move icon pack
* avatar, contrast theme, error fix
* zitadel css map
* revert go mod
* fix mfa verify actions
* add idp styles
* fix google colors, idp styles
* fix: bugs
* fix register options, google
* fix script, mobile layout
* precompile font selection
* go mod tidy
* assets and cleanup
* input suffix, fix alignment, actions, add progress bar themes
* progress bar mixins, layout fixes
* remove test from loginname
* cleanup comments, scripts
* clear comments
* fix external back button
* fix mfa alignment
* fix actions layout, on dom change listener for suffix
* free tier change, success label
* fix: button font line-height
* remove tabindex
* remove comment
* remove comment
* Update internal/ui/login/handler/password_handler.go
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Maximilian Peintner <csaq7175@uibk.ac.at>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
* feat: external users
* chore(console): dependencies (#1233)
* chore(deps-dev): bump @angular-devkit/build-angular in /console (#1214)
Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1101.1 to 0.1101.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/commits)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump karma from 6.0.1 to 6.0.3 in /console (#1215)
Bumps [karma](https://github.com/karma-runner/karma) from 6.0.1 to 6.0.3.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v6.0.1...v6.0.3)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/language-service in /console (#1216)
Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/11.1.1/packages/language-service)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps-dev): bump @angular/cli from 11.1.1 to 11.1.2 in /console (#1217)
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 11.1.1 to 11.1.2.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Commits](https://github.com/angular/angular-cli/compare/v11.1.1...v11.1.2)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Peintner <max@caos.ch>
* lock
* site deps
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: external users login
* feat: notify users
* fix: tests
* feat: cascade remove user grants on project remove
* feat: cascade remove user grants on user remove
* feat: cascade remove roles
* feat: verified domain
* feat: cascade remove on idp config remove
* feat: cascade remove on system idp config remove
* fix: get email texts with default language (#1238)
* fix: login policy
* fix: login policy
* fix: cascade delete on remove idp from default policy
* fix(login): mail verification (#1237)
* fix: mail verification
* not block, stroked
* fix: issues of new login ui (#1241)
* fix: i18n of register
* fix: autofocus
* feat(operator): zitadel and database operator (#1208)
* feat(operator): add base for zitadel operator
* fix(operator): changed pipeline to release operator
* fix(operator): fmt with only one parameter
* fix(operator): corrected workflow job name
* fix(zitadelctl): added restore and backuplist command
* fix(zitadelctl): scale for restore
* chore(container): use scratch for deploy container
* fix(zitadelctl): limit image to scratch
* fix(migration): added migration scripts for newer version
* fix(operator): changed handling of kubeconfig in operator logic
* fix(operator): changed handling of secrets in operator logic
* fix(operator): use new version of zitadel
* fix(operator): added path for migrations
* fix(operator): delete doublets of migration scripts
* fix(operator): delete subpaths and integrate logic into init container
* fix(operator): corrected path in dockerfile for local migrations
* fix(operator): added migrations for cockroachdb-secure
* fix(operator): delete logic for ambassador module
* fix(operator): added read and write secret commands
* fix(operator): correct and align operator pipeline with zitadel pipeline
* fix(operator): correct yaml error in operator pipeline
* fix(operator): correct action name in operator pipeline
* fix(operator): correct case-sensitive filename in operator pipeline
* fix(operator): upload artifacts from buildx output
* fix(operator): corrected attribute spelling error
* fix(operator): combined jobs for operator binary and image
* fix(operator): added missing comma in operator pipeline
* fix(operator): added codecov for operator image
* fix(operator): added codecov for operator image
* fix(testing): code changes for testing and several unit-tests (#1009)
* fix(operator): usage of interface of kubernetes client for testing and several unit-tests
* fix(operator): several unit-tests
* fix(operator): several unit-tests
* fix(operator): changed order for the operator logic
* fix(operator): added version of zitadelctl from semantic release
* fix(operator): corrected function call with version of zitadelctl
* fix(operator): corrected function call with version of zitadelctl
* fix(operator): add check output to operator release pipeline
* fix(operator): set --short length everywhere to 12
* fix(operator): zitadel setup in job instead of exec with several unit tests
* fix(operator): fixes to combine newest zitadel and testing branch
* fix(operator): corrected path in Dockerfile
* fix(operator): fixed unit-test that was ignored during changes
* fix(operator): fixed unit-test that was ignored during changes
* fix(operator): corrected Dockerfile to correctly use env variable
* fix(operator): quickfix takeoff deployment
* fix(operator): corrected the clusterrolename in the applied artifacts
* fix: update secure migrations
* fix(operator): migrations (#1057)
* fix(operator): copied migrations from orbos repository
* fix(operator): newest migrations
* chore: use cockroach-secure
* fix: rename migration
* fix: remove insecure cockroach migrations
Co-authored-by: Stefan Benz <stefan@caos.ch>
* fix: finalize labels
* fix(operator): cli logging concurrent and fixe deployment of operator during restore
* fix: finalize labels and cli commands
* fix: restore
* chore: cockroachdb is always secure
* chore: use orbos consistent-labels latest commit
* test: make tests compatible with new labels
* fix: default to sa token for start command
* fix: use cockroachdb v12.02
* fix: don't delete flyway user
* test: fix migration test
* fix: use correct table qualifiers
* fix: don't alter sequence ownership
* fix: upgrade flyway
* fix: change ownership of all dbs and tables to admin user
* fix: change defaultdb user
* fix: treat clientid status codes >= 400 as errors
* fix: reconcile specified ZITADEL version, not binary version
* fix: add ca-certs
* fix: use latest orbos code
* fix: use orbos with fixed race condition
* fix: use latest ORBOS code
* fix: use latest ORBOS code
* fix: make migration and scaling around restoring work
* fix(operator): move zitadel operator
* chore(migrations): include owner change migration
* feat(db): add code base for database operator
* fix(db): change used image registry for database operator
* fix(db): generated mock
* fix(db): add accidentally ignored file
* fix(db): add cockroachdb backup image to pipeline
* fix(db): correct pipeline and image versions
* fix(db): correct version of used orbos
* fix(db): correct database import
* fix(db): go mod tidy
* fix(db): use new version for orbos
* fix(migrations): include migrations into zitadelctl binary (#1211)
* fix(db): use statik to integrate migrations into binary
* fix(migrations): corrections unit tests and pipeline for integrated migrations into zitadelctl binary
* fix(migrations): correction in dockerfile for pipeline build
* fix(migrations): correction in dockerfile for pipeline build
* fix(migrations): dockerfile changes for cache optimization
* fix(database): correct used part-of label in database operator
* fix(database): correct used selectable label in zitadel operator
* fix(operator): correct lables for user secrets in zitadel operator
* fix(operator): correct lables for service test in zitadel operator
* fix: don't enable database features for user operations (#1227)
* fix: don't enable database features for user operations
* fix: omit database feature for connection info adapter
* fix: use latest orbos version
* fix: update ORBOS (#1240)
Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Elio Bischof <eliobischof@gmail.com>
* Merge branch 'new-eventstore' into cascades
# Conflicts:
# internal/auth/repository/auth_request.go
# internal/auth/repository/eventsourcing/eventstore/auth_request.go
# internal/management/repository/eventsourcing/eventstore/user_grant.go
# internal/management/repository/user_grant.go
# internal/ui/login/handler/external_login_handler.go
# internal/ui/login/handler/external_register_handler.go
# internal/ui/login/handler/init_password_handler.go
# internal/ui/login/handler/register_handler.go
# internal/user/repository/view/model/notify_user.go
# internal/v2/command/org_policy_login.go
# internal/v2/command/project.go
# internal/v2/command/user.go
# internal/v2/command/user_human.go
# internal/v2/command/user_human_externalidp.go
# internal/v2/command/user_human_init.go
# internal/v2/command/user_human_password.go
# internal/v2/command/user_human_webauthn.go
# internal/v2/domain/next_step.go
# internal/v2/domain/policy_login.go
# internal/v2/domain/request.go
* Merge branch 'new-eventstore' into cascades
# Conflicts:
# internal/auth/repository/auth_request.go
# internal/auth/repository/eventsourcing/eventstore/auth_request.go
# internal/management/repository/eventsourcing/eventstore/user_grant.go
# internal/management/repository/user_grant.go
# internal/ui/login/handler/external_login_handler.go
# internal/ui/login/handler/external_register_handler.go
# internal/ui/login/handler/init_password_handler.go
# internal/ui/login/handler/register_handler.go
# internal/user/repository/view/model/notify_user.go
# internal/v2/command/org_policy_login.go
# internal/v2/command/project.go
# internal/v2/command/user.go
# internal/v2/command/user_human.go
# internal/v2/command/user_human_externalidp.go
# internal/v2/command/user_human_init.go
# internal/v2/command/user_human_password.go
# internal/v2/command/user_human_webauthn.go
# internal/v2/domain/next_step.go
# internal/v2/domain/policy_login.go
# internal/v2/domain/request.go
* chore: add local migrate_local.go again (#1261)
* fix: logging on cascade removes
* fix: migrations
* fix: tests
* fix: tests
* chore: pass params in migrate_local.go
* migrations
* fix query
* fix tests
* fix tests
Co-authored-by: Max Peintner <max@caos.ch>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael Waeger <49439088+michaelulrichwaeger@users.noreply.github.com>
Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: Maximilian Peintner <csaq7175@uibk.ac.at>
Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
Co-authored-by: Florian Forster <florian@caos.ch>
Co-authored-by: Elio Bischof <eliobischof@gmail.com>
2021-02-09 10:14:40 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, nil, nil, err
|
2021-01-08 11:33:45 +01:00
|
|
|
}
|
2022-03-28 10:05:09 +02:00
|
|
|
events = append(events, orgDomainEvents...)
|
2021-01-08 11:33:45 +01:00
|
|
|
}
|
2021-02-18 14:48:27 +01:00
|
|
|
return orgAgg, addedOrg, events, nil
|
2021-01-08 11:33:45 +01:00
|
|
|
}
|
|
|
|
|
2024-06-19 13:56:33 +03:00
|
|
|
func (c *Commands) getOrgWriteModelByID(ctx context.Context, orgID string) (_ *OrgWriteModel, err error) {
|
|
|
|
ctx, span := tracing.NewSpan(ctx)
|
|
|
|
defer func() { span.EndWithError(err) }()
|
|
|
|
|
2021-01-08 11:33:45 +01:00
|
|
|
orgWriteModel := NewOrgWriteModel(orgID)
|
2024-06-19 13:56:33 +03:00
|
|
|
err = c.eventstore.FilterToQueryReducer(ctx, orgWriteModel)
|
2021-01-08 11:33:45 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return orgWriteModel, nil
|
|
|
|
}
|
2022-11-30 17:01:17 +01:00
|
|
|
|
|
|
|
func isOrgStateExists(state domain.OrgState) bool {
|
|
|
|
return !hasOrgState(state, domain.OrgStateRemoved, domain.OrgStateUnspecified)
|
|
|
|
}
|
|
|
|
|
|
|
|
func hasOrgState(check domain.OrgState, states ...domain.OrgState) bool {
|
|
|
|
for _, state := range states {
|
|
|
|
if check == state {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|