mirror of
https://github.com/zitadel/zitadel.git
synced 2025-02-28 19:27:46 +00:00
fix(user fields): missing creationDate in details (#9250)
# Which Problems Are Solved The `creationDate` property on user search V2 endpoint was missing # How the Problems Are Solved Added property in v2 `object.proto` and in the function creating the details on each call # Additional Changes - none # Additional Context closes #8552 --------- Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
This commit is contained in:
parent
8f88c4cf5b
commit
70bddceda8
@ -76,6 +76,7 @@ func TestServer_GetIDPByID(t *testing.T) {
|
|||||||
name,
|
name,
|
||||||
&object.Details{
|
&object.Details{
|
||||||
Sequence: resp.Details.Sequence,
|
Sequence: resp.Details.Sequence,
|
||||||
|
CreationDate: resp.Details.CreationDate,
|
||||||
ChangeDate: resp.Details.ChangeDate,
|
ChangeDate: resp.Details.ChangeDate,
|
||||||
ResourceOwner: resp.Details.ResourceOwner,
|
ResourceOwner: resp.Details.ResourceOwner,
|
||||||
}}
|
}}
|
||||||
@ -124,6 +125,7 @@ func TestServer_GetIDPByID(t *testing.T) {
|
|||||||
name,
|
name,
|
||||||
&object.Details{
|
&object.Details{
|
||||||
Sequence: resp.Details.Sequence,
|
Sequence: resp.Details.Sequence,
|
||||||
|
CreationDate: resp.Details.CreationDate,
|
||||||
ChangeDate: resp.Details.ChangeDate,
|
ChangeDate: resp.Details.ChangeDate,
|
||||||
ResourceOwner: resp.Details.ResourceOwner,
|
ResourceOwner: resp.Details.ResourceOwner,
|
||||||
}}
|
}}
|
||||||
@ -145,6 +147,7 @@ func TestServer_GetIDPByID(t *testing.T) {
|
|||||||
name,
|
name,
|
||||||
&object.Details{
|
&object.Details{
|
||||||
Sequence: resp.Details.Sequence,
|
Sequence: resp.Details.Sequence,
|
||||||
|
CreationDate: resp.Details.CreationDate,
|
||||||
ChangeDate: resp.Details.ChangeDate,
|
ChangeDate: resp.Details.ChangeDate,
|
||||||
ResourceOwner: resp.Details.ResourceOwner,
|
ResourceOwner: resp.Details.ResourceOwner,
|
||||||
}}
|
}}
|
||||||
@ -193,6 +196,7 @@ func TestServer_GetIDPByID(t *testing.T) {
|
|||||||
name,
|
name,
|
||||||
&object.Details{
|
&object.Details{
|
||||||
Sequence: resp.Details.Sequence,
|
Sequence: resp.Details.Sequence,
|
||||||
|
CreationDate: resp.Details.CreationDate,
|
||||||
ChangeDate: resp.Details.ChangeDate,
|
ChangeDate: resp.Details.ChangeDate,
|
||||||
ResourceOwner: resp.Details.ResourceOwner,
|
ResourceOwner: resp.Details.ResourceOwner,
|
||||||
}}
|
}}
|
||||||
|
@ -31,6 +31,7 @@ func idpToPb(idp *query.IDPTemplate) *idp_pb.IDP {
|
|||||||
Sequence: idp.Sequence,
|
Sequence: idp.Sequence,
|
||||||
EventDate: idp.ChangeDate,
|
EventDate: idp.ChangeDate,
|
||||||
ResourceOwner: idp.ResourceOwner,
|
ResourceOwner: idp.ResourceOwner,
|
||||||
|
CreationDate: idp.CreationDate,
|
||||||
}),
|
}),
|
||||||
State: idpStateToPb(idp.State),
|
State: idpStateToPb(idp.State),
|
||||||
Name: idp.Name,
|
Name: idp.Name,
|
||||||
|
@ -20,6 +20,9 @@ func DomainToDetailsPb(objectDetail *domain.ObjectDetails) *object.Details {
|
|||||||
if !objectDetail.EventDate.IsZero() {
|
if !objectDetail.EventDate.IsZero() {
|
||||||
details.ChangeDate = timestamppb.New(objectDetail.EventDate)
|
details.ChangeDate = timestamppb.New(objectDetail.EventDate)
|
||||||
}
|
}
|
||||||
|
if !objectDetail.CreationDate.IsZero() {
|
||||||
|
details.CreationDate = timestamppb.New(objectDetail.CreationDate)
|
||||||
|
}
|
||||||
return details
|
return details
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,9 @@ func DomainToDetailsPb(objectDetail *domain.ObjectDetails) *object.Details {
|
|||||||
if !objectDetail.EventDate.IsZero() {
|
if !objectDetail.EventDate.IsZero() {
|
||||||
details.ChangeDate = timestamppb.New(objectDetail.EventDate)
|
details.ChangeDate = timestamppb.New(objectDetail.EventDate)
|
||||||
}
|
}
|
||||||
|
if !objectDetail.CreationDate.IsZero() {
|
||||||
|
details.CreationDate = timestamppb.New(objectDetail.CreationDate)
|
||||||
|
}
|
||||||
return details
|
return details
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,16 @@ type orgAttr struct {
|
|||||||
Details *object.Details
|
Details *object.Details
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createOrganization(ctx context.Context, name string) orgAttr {
|
||||||
|
orgResp := Instance.CreateOrganization(ctx, name, gofakeit.Email())
|
||||||
|
orgResp.Details.CreationDate = orgResp.Details.ChangeDate
|
||||||
|
return orgAttr{
|
||||||
|
ID: orgResp.GetOrganizationId(),
|
||||||
|
Name: name,
|
||||||
|
Details: orgResp.GetDetails(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestServer_ListOrganizations(t *testing.T) {
|
func TestServer_ListOrganizations(t *testing.T) {
|
||||||
type args struct {
|
type args struct {
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
@ -63,6 +73,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
State: org.OrganizationState_ORGANIZATION_STATE_ACTIVE,
|
State: org.OrganizationState_ORGANIZATION_STATE_ACTIVE,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.CreationDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -85,12 +96,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
prefix := fmt.Sprintf("ListOrgs-%s", gofakeit.AppName())
|
prefix := fmt.Sprintf("ListOrgs-%s", gofakeit.AppName())
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
name := prefix + strconv.Itoa(i)
|
name := prefix + strconv.Itoa(i)
|
||||||
orgResp := Instance.CreateOrganization(ctx, name, gofakeit.Email())
|
orgs[i] = createOrganization(ctx, name)
|
||||||
orgs[i] = orgAttr{
|
|
||||||
ID: orgResp.GetOrganizationId(),
|
|
||||||
Name: name,
|
|
||||||
Details: orgResp.GetDetails(),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
request.Queries = []*org.SearchQuery{
|
request.Queries = []*org.SearchQuery{
|
||||||
OrganizationNamePrefixQuery(prefix),
|
OrganizationNamePrefixQuery(prefix),
|
||||||
@ -140,6 +146,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
Name: Instance.DefaultOrg.Name,
|
Name: Instance.DefaultOrg.Name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.CreationDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -172,6 +179,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
Name: Instance.DefaultOrg.Name,
|
Name: Instance.DefaultOrg.Name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.CreationDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -204,6 +212,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
Name: Instance.DefaultOrg.Name,
|
Name: Instance.DefaultOrg.Name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.CreationDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -221,14 +230,9 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
func(ctx context.Context, request *org.ListOrganizationsRequest) ([]orgAttr, error) {
|
func(ctx context.Context, request *org.ListOrganizationsRequest) ([]orgAttr, error) {
|
||||||
orgs := make([]orgAttr, 1)
|
orgs := make([]orgAttr, 1)
|
||||||
name := fmt.Sprintf("ListOrgs-%s", gofakeit.AppName())
|
name := fmt.Sprintf("ListOrgs-%s", gofakeit.AppName())
|
||||||
orgResp := Instance.CreateOrganization(ctx, name, gofakeit.Email())
|
orgs[0] = createOrganization(ctx, name)
|
||||||
orgs[0] = orgAttr{
|
|
||||||
ID: orgResp.GetOrganizationId(),
|
|
||||||
Name: name,
|
|
||||||
Details: orgResp.GetDetails(),
|
|
||||||
}
|
|
||||||
domain := gofakeit.DomainName()
|
domain := gofakeit.DomainName()
|
||||||
_, err := Instance.Client.Mgmt.AddOrgDomain(integration.SetOrgID(ctx, orgResp.GetOrganizationId()), &management.AddOrgDomainRequest{
|
_, err := Instance.Client.Mgmt.AddOrgDomain(integration.SetOrgID(ctx, orgs[0].ID), &management.AddOrgDomainRequest{
|
||||||
Domain: domain,
|
Domain: domain,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -262,18 +266,19 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
},
|
},
|
||||||
func(ctx context.Context, request *org.ListOrganizationsRequest) ([]orgAttr, error) {
|
func(ctx context.Context, request *org.ListOrganizationsRequest) ([]orgAttr, error) {
|
||||||
name := gofakeit.Name()
|
name := gofakeit.Name()
|
||||||
orgResp := Instance.CreateOrganization(ctx, name, gofakeit.Email())
|
orgResp := createOrganization(ctx, name)
|
||||||
deactivateOrgResp := Instance.DeactivateOrganization(ctx, orgResp.GetOrganizationId())
|
deactivateOrgResp := Instance.DeactivateOrganization(ctx, orgResp.ID)
|
||||||
request.Queries = []*org.SearchQuery{
|
request.Queries = []*org.SearchQuery{
|
||||||
OrganizationIdQuery(orgResp.GetOrganizationId()),
|
OrganizationIdQuery(orgResp.ID),
|
||||||
OrganizationStateQuery(org.OrganizationState_ORGANIZATION_STATE_INACTIVE),
|
OrganizationStateQuery(org.OrganizationState_ORGANIZATION_STATE_INACTIVE),
|
||||||
}
|
}
|
||||||
return []orgAttr{{
|
return []orgAttr{{
|
||||||
ID: orgResp.GetOrganizationId(),
|
ID: orgResp.ID,
|
||||||
Name: name,
|
Name: name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
ResourceOwner: deactivateOrgResp.GetDetails().GetResourceOwner(),
|
ResourceOwner: deactivateOrgResp.GetDetails().GetResourceOwner(),
|
||||||
Sequence: deactivateOrgResp.GetDetails().GetSequence(),
|
Sequence: deactivateOrgResp.GetDetails().GetSequence(),
|
||||||
|
CreationDate: orgResp.Details.GetCreationDate(),
|
||||||
ChangeDate: deactivateOrgResp.GetDetails().GetChangeDate(),
|
ChangeDate: deactivateOrgResp.GetDetails().GetChangeDate(),
|
||||||
},
|
},
|
||||||
}}, nil
|
}}, nil
|
||||||
@ -317,6 +322,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
Name: Instance.DefaultOrg.Name,
|
Name: Instance.DefaultOrg.Name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -414,6 +420,7 @@ func TestServer_ListOrganizations(t *testing.T) {
|
|||||||
Name: Instance.DefaultOrg.Name,
|
Name: Instance.DefaultOrg.Name,
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: Instance.DefaultOrg.Details.Sequence,
|
Sequence: Instance.DefaultOrg.Details.Sequence,
|
||||||
|
CreationDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
ChangeDate: Instance.DefaultOrg.Details.ChangeDate,
|
||||||
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
ResourceOwner: Instance.DefaultOrg.Details.ResourceOwner,
|
||||||
},
|
},
|
||||||
|
@ -129,6 +129,7 @@ func organizationToPb(organization *query.Org) *org.Organization {
|
|||||||
Sequence: organization.Sequence,
|
Sequence: organization.Sequence,
|
||||||
EventDate: organization.ChangeDate,
|
EventDate: organization.ChangeDate,
|
||||||
ResourceOwner: organization.ResourceOwner,
|
ResourceOwner: organization.ResourceOwner,
|
||||||
|
CreationDate: organization.CreationDate,
|
||||||
}),
|
}),
|
||||||
State: orgStateToPb(organization.State),
|
State: orgStateToPb(organization.State),
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ func (s *Server) GetLoginSettings(ctx context.Context, req *settings.GetLoginSet
|
|||||||
Settings: loginSettingsToPb(current),
|
Settings: loginSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.OrgID,
|
ResourceOwner: current.OrgID,
|
||||||
},
|
},
|
||||||
@ -38,6 +39,7 @@ func (s *Server) GetPasswordComplexitySettings(ctx context.Context, req *setting
|
|||||||
Settings: passwordComplexitySettingsToPb(current),
|
Settings: passwordComplexitySettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -53,6 +55,7 @@ func (s *Server) GetPasswordExpirySettings(ctx context.Context, req *settings.Ge
|
|||||||
Settings: passwordExpirySettingsToPb(current),
|
Settings: passwordExpirySettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -68,6 +71,7 @@ func (s *Server) GetBrandingSettings(ctx context.Context, req *settings.GetBrand
|
|||||||
Settings: brandingSettingsToPb(current, s.assetsAPIDomain(ctx)),
|
Settings: brandingSettingsToPb(current, s.assetsAPIDomain(ctx)),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -83,6 +87,7 @@ func (s *Server) GetDomainSettings(ctx context.Context, req *settings.GetDomainS
|
|||||||
Settings: domainSettingsToPb(current),
|
Settings: domainSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -98,6 +103,7 @@ func (s *Server) GetLegalAndSupportSettings(ctx context.Context, req *settings.G
|
|||||||
Settings: legalAndSupportSettingsToPb(current),
|
Settings: legalAndSupportSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -113,6 +119,7 @@ func (s *Server) GetLockoutSettings(ctx context.Context, req *settings.GetLockou
|
|||||||
Settings: lockoutSettingsToPb(current),
|
Settings: lockoutSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
|
@ -23,6 +23,7 @@ func (s *Server) GetLoginSettings(ctx context.Context, req *settings.GetLoginSet
|
|||||||
Settings: loginSettingsToPb(current),
|
Settings: loginSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.OrgID,
|
ResourceOwner: current.OrgID,
|
||||||
},
|
},
|
||||||
@ -38,6 +39,7 @@ func (s *Server) GetPasswordComplexitySettings(ctx context.Context, req *setting
|
|||||||
Settings: passwordComplexitySettingsToPb(current),
|
Settings: passwordComplexitySettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -53,6 +55,7 @@ func (s *Server) GetPasswordExpirySettings(ctx context.Context, req *settings.Ge
|
|||||||
Settings: passwordExpirySettingsToPb(current),
|
Settings: passwordExpirySettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -68,6 +71,7 @@ func (s *Server) GetBrandingSettings(ctx context.Context, req *settings.GetBrand
|
|||||||
Settings: brandingSettingsToPb(current, s.assetsAPIDomain(ctx)),
|
Settings: brandingSettingsToPb(current, s.assetsAPIDomain(ctx)),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -83,6 +87,7 @@ func (s *Server) GetDomainSettings(ctx context.Context, req *settings.GetDomainS
|
|||||||
Settings: domainSettingsToPb(current),
|
Settings: domainSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -98,6 +103,7 @@ func (s *Server) GetLegalAndSupportSettings(ctx context.Context, req *settings.G
|
|||||||
Settings: legalAndSupportSettingsToPb(current),
|
Settings: legalAndSupportSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
@ -113,6 +119,7 @@ func (s *Server) GetLockoutSettings(ctx context.Context, req *settings.GetLockou
|
|||||||
Settings: lockoutSettingsToPb(current),
|
Settings: lockoutSettingsToPb(current),
|
||||||
Details: &object_pb.Details{
|
Details: &object_pb.Details{
|
||||||
Sequence: current.Sequence,
|
Sequence: current.Sequence,
|
||||||
|
CreationDate: timestamppb.New(current.CreationDate),
|
||||||
ChangeDate: timestamppb.New(current.ChangeDate),
|
ChangeDate: timestamppb.New(current.ChangeDate),
|
||||||
ResourceOwner: current.ResourceOwner,
|
ResourceOwner: current.ResourceOwner,
|
||||||
},
|
},
|
||||||
|
@ -150,6 +150,7 @@ func TestServer_GetUserByID(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
ChangeDate: timestamppb.Now(),
|
ChangeDate: timestamppb.Now(),
|
||||||
|
CreationDate: timestamppb.Now(),
|
||||||
ResourceOwner: orgResp.OrganizationId,
|
ResourceOwner: orgResp.OrganizationId,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -195,6 +196,7 @@ func TestServer_GetUserByID(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
ChangeDate: timestamppb.Now(),
|
ChangeDate: timestamppb.Now(),
|
||||||
|
CreationDate: timestamppb.Now(),
|
||||||
ResourceOwner: orgResp.OrganizationId,
|
ResourceOwner: orgResp.OrganizationId,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -282,6 +284,7 @@ func TestServer_GetUserByID_Permission(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
ChangeDate: timestamppb.Now(),
|
ChangeDate: timestamppb.Now(),
|
||||||
|
CreationDate: timestamppb.Now(),
|
||||||
ResourceOwner: newOrg.GetOrganizationId(),
|
ResourceOwner: newOrg.GetOrganizationId(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -320,6 +323,7 @@ func TestServer_GetUserByID_Permission(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
ChangeDate: timestamppb.Now(),
|
ChangeDate: timestamppb.Now(),
|
||||||
|
CreationDate: timestamppb.Now(),
|
||||||
ResourceOwner: newOrg.GetOrganizationId(),
|
ResourceOwner: newOrg.GetOrganizationId(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -415,6 +419,8 @@ func createUser(ctx context.Context, orgID string, passwordChangeRequired bool)
|
|||||||
phone := "+41" + gofakeit.Phone()
|
phone := "+41" + gofakeit.Phone()
|
||||||
resp := Instance.CreateHumanUserVerified(ctx, orgID, username, phone)
|
resp := Instance.CreateHumanUserVerified(ctx, orgID, username, phone)
|
||||||
info := userAttr{resp.GetUserId(), username, phone, nil, resp.GetDetails()}
|
info := userAttr{resp.GetUserId(), username, phone, nil, resp.GetDetails()}
|
||||||
|
// as the change date of the creation is the creation date
|
||||||
|
resp.Details.CreationDate = resp.GetDetails().GetChangeDate()
|
||||||
if passwordChangeRequired {
|
if passwordChangeRequired {
|
||||||
details := Instance.SetUserPassword(ctx, resp.GetUserId(), integration.UserPassword, true)
|
details := Instance.SetUserPassword(ctx, resp.GetUserId(), integration.UserPassword, true)
|
||||||
info.Changed = details.GetChangeDate()
|
info.Changed = details.GetChangeDate()
|
||||||
|
@ -74,6 +74,7 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -90,6 +91,7 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -104,6 +106,10 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
},
|
},
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
PasskeyId: "123",
|
PasskeyId: "123",
|
||||||
@ -150,6 +156,7 @@ func Test_passkeyDetailsToPb(t *testing.T) {
|
|||||||
details: &domain.ObjectDetails{
|
details: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
err: nil,
|
err: nil,
|
||||||
@ -161,6 +168,10 @@ func Test_passkeyDetailsToPb(t *testing.T) {
|
|||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
},
|
},
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -199,6 +210,7 @@ func Test_passkeyCodeDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
CodeID: "123",
|
CodeID: "123",
|
||||||
@ -213,6 +225,10 @@ func Test_passkeyCodeDetailsToPb(t *testing.T) {
|
|||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
},
|
},
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
Code: &user.PasskeyRegistrationCode{
|
Code: &user.PasskeyRegistrationCode{
|
||||||
|
@ -21,6 +21,7 @@ func (s *Server) GetUserByID(ctx context.Context, req *user.GetUserByIDRequest)
|
|||||||
return &user.GetUserByIDResponse{
|
return &user.GetUserByIDResponse{
|
||||||
Details: object.DomainToDetailsPb(&domain.ObjectDetails{
|
Details: object.DomainToDetailsPb(&domain.ObjectDetails{
|
||||||
Sequence: resp.Sequence,
|
Sequence: resp.Sequence,
|
||||||
|
CreationDate: resp.CreationDate,
|
||||||
EventDate: resp.ChangeDate,
|
EventDate: resp.ChangeDate,
|
||||||
ResourceOwner: resp.ResourceOwner,
|
ResourceOwner: resp.ResourceOwner,
|
||||||
}),
|
}),
|
||||||
@ -58,6 +59,7 @@ func userToPb(userQ *query.User, assetPrefix string) *user.User {
|
|||||||
Sequence: userQ.Sequence,
|
Sequence: userQ.Sequence,
|
||||||
EventDate: userQ.ChangeDate,
|
EventDate: userQ.ChangeDate,
|
||||||
ResourceOwner: userQ.ResourceOwner,
|
ResourceOwner: userQ.ResourceOwner,
|
||||||
|
CreationDate: userQ.CreationDate,
|
||||||
}),
|
}),
|
||||||
State: userStateToPb(userQ.State),
|
State: userStateToPb(userQ.State),
|
||||||
Username: userQ.Username,
|
Username: userQ.Username,
|
||||||
|
@ -43,6 +43,7 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -59,6 +60,7 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -73,6 +75,10 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
},
|
},
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
U2FId: "123",
|
U2FId: "123",
|
||||||
|
@ -74,6 +74,7 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -90,6 +91,7 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -100,6 +102,10 @@ func Test_passkeyRegistrationDetailsToPb(t *testing.T) {
|
|||||||
want: &user.RegisterPasskeyResponse{
|
want: &user.RegisterPasskeyResponse{
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ChangeDate: ×tamppb.Timestamp{
|
ChangeDate: ×tamppb.Timestamp{
|
||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
@ -150,6 +156,7 @@ func Test_passkeyDetailsToPb(t *testing.T) {
|
|||||||
details: &domain.ObjectDetails{
|
details: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
err: nil,
|
err: nil,
|
||||||
@ -157,6 +164,10 @@ func Test_passkeyDetailsToPb(t *testing.T) {
|
|||||||
want: &user.CreatePasskeyRegistrationLinkResponse{
|
want: &user.CreatePasskeyRegistrationLinkResponse{
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ChangeDate: ×tamppb.Timestamp{
|
ChangeDate: ×tamppb.Timestamp{
|
||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
@ -199,6 +210,7 @@ func Test_passkeyCodeDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
CodeID: "123",
|
CodeID: "123",
|
||||||
@ -209,6 +221,10 @@ func Test_passkeyCodeDetailsToPb(t *testing.T) {
|
|||||||
want: &user.CreatePasskeyRegistrationLinkResponse{
|
want: &user.CreatePasskeyRegistrationLinkResponse{
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ChangeDate: ×tamppb.Timestamp{
|
ChangeDate: ×tamppb.Timestamp{
|
||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
|
@ -43,6 +43,7 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -59,6 +60,7 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
ObjectDetails: &domain.ObjectDetails{
|
ObjectDetails: &domain.ObjectDetails{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
EventDate: time.Unix(3000, 22),
|
EventDate: time.Unix(3000, 22),
|
||||||
|
CreationDate: time.Unix(3000, 22),
|
||||||
ResourceOwner: "me",
|
ResourceOwner: "me",
|
||||||
},
|
},
|
||||||
ID: "123",
|
ID: "123",
|
||||||
@ -69,6 +71,10 @@ func Test_u2fRegistrationDetailsToPb(t *testing.T) {
|
|||||||
want: &user.RegisterU2FResponse{
|
want: &user.RegisterU2FResponse{
|
||||||
Details: &object.Details{
|
Details: &object.Details{
|
||||||
Sequence: 22,
|
Sequence: 22,
|
||||||
|
CreationDate: ×tamppb.Timestamp{
|
||||||
|
Seconds: 3000,
|
||||||
|
Nanos: 22,
|
||||||
|
},
|
||||||
ChangeDate: ×tamppb.Timestamp{
|
ChangeDate: ×tamppb.Timestamp{
|
||||||
Seconds: 3000,
|
Seconds: 3000,
|
||||||
Nanos: 22,
|
Nanos: 22,
|
||||||
|
@ -19,6 +19,7 @@ import (
|
|||||||
type Details interface {
|
type Details interface {
|
||||||
comparable
|
comparable
|
||||||
GetSequence() uint64
|
GetSequence() uint64
|
||||||
|
GetCreationDate() *timestamppb.Timestamp
|
||||||
GetChangeDate() *timestamppb.Timestamp
|
GetChangeDate() *timestamppb.Timestamp
|
||||||
GetResourceOwner() string
|
GetResourceOwner() string
|
||||||
}
|
}
|
||||||
@ -62,6 +63,12 @@ func AssertDetails[D Details, M DetailsMsg[D]](t assert.TestingT, expected, actu
|
|||||||
|
|
||||||
assert.NotZero(t, gotDetails.GetSequence())
|
assert.NotZero(t, gotDetails.GetSequence())
|
||||||
|
|
||||||
|
if wantDetails.GetCreationDate() != nil {
|
||||||
|
wantCreationDate := time.Now()
|
||||||
|
gotCreationDate := gotDetails.GetCreationDate().AsTime()
|
||||||
|
assert.WithinRange(t, gotCreationDate, wantCreationDate.Add(-time.Minute), wantCreationDate.Add(time.Minute))
|
||||||
|
}
|
||||||
|
|
||||||
if wantDetails.GetChangeDate() != nil {
|
if wantDetails.GetChangeDate() != nil {
|
||||||
wantChangeDate := time.Now()
|
wantChangeDate := time.Now()
|
||||||
gotChangeDate := gotDetails.GetChangeDate().AsTime()
|
gotChangeDate := gotDetails.GetChangeDate().AsTime()
|
||||||
|
@ -78,6 +78,8 @@ message Details {
|
|||||||
example: "\"69629023906488334\"";
|
example: "\"69629023906488334\"";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
//creation_date is the timestamp where the first operation on the object was made
|
||||||
|
google.protobuf.Timestamp creation_date = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListDetails {
|
message ListDetails {
|
||||||
|
@ -78,6 +78,8 @@ message Details {
|
|||||||
example: "\"69629023906488334\"";
|
example: "\"69629023906488334\"";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
//creation_date is the timestamp where the first operation on the object was made
|
||||||
|
google.protobuf.Timestamp creation_date = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListDetails {
|
message ListDetails {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user