mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-13 10:57:32 +00:00
Merge branch 'org_api_2' into org_api_merge_2
This commit is contained in:
@@ -47,3 +47,4 @@ func OrgMetadataQueryToQuery(metadataQuery *meta_pb.MetadataQuery) (query.Search
|
|||||||
return nil, zerrors.ThrowInvalidArgument(nil, "METAD-fdg23", "List.Query.Invalid")
|
return nil, zerrors.ThrowInvalidArgument(nil, "METAD-fdg23", "List.Query.Invalid")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -159,3 +159,4 @@ func DomainValidationTypeToDomain(validationType org_pb.DomainValidationType) do
|
|||||||
return domain.OrgDomainValidationTypeUnspecified
|
return domain.OrgDomainValidationTypeUnspecified
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -284,3 +284,4 @@ func ListOrgMetadataToDomain(systemDefaults systemdefaults.SystemDefaults, reque
|
|||||||
Queries: queries,
|
Queries: queries,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -110,11 +110,15 @@ func TestServer_CreateOrganization(t *testing.T) {
|
|||||||
},
|
},
|
||||||
want: &v2beta_org.CreateOrganizationResponse{
|
want: &v2beta_org.CreateOrganizationResponse{
|
||||||
Id: integration.NotEmpty,
|
Id: integration.NotEmpty,
|
||||||
CreatedAdmins: []*v2beta_org.CreatedAdmin{
|
OrganizationAdmins: []*org.OrganizationAdmin{
|
||||||
{
|
{
|
||||||
UserId: integration.NotEmpty,
|
OrganizationAdmin: &org.OrganizationAdmin_CreatedAdmin{
|
||||||
EmailCode: gu.Ptr(integration.NotEmpty),
|
CreatedAdmin: &org.CreatedAdmin{
|
||||||
PhoneCode: nil,
|
UserId: integration.NotEmpty,
|
||||||
|
EmailCode: gu.Ptr(integration.NotEmpty),
|
||||||
|
PhoneCode: nil,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -153,11 +157,22 @@ func TestServer_CreateOrganization(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
want: &v2beta_org.CreateOrganizationResponse{
|
want: &org.CreateOrganizationResponse{
|
||||||
CreatedAdmins: []*v2beta_org.CreatedAdmin{
|
// OrganizationId: integration.NotEmpty,
|
||||||
// a single admin is expected, because the first provided already exists
|
OrganizationAdmins: []*org.OrganizationAdmin{
|
||||||
{
|
{
|
||||||
UserId: integration.NotEmpty,
|
OrganizationAdmin: &org.OrganizationAdmin_AssignedAdmin{
|
||||||
|
AssignedAdmin: &org.AssignedAdmin{
|
||||||
|
UserId: User.GetUserId(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
OrganizationAdmin: &org.OrganizationAdmin_CreatedAdmin{
|
||||||
|
CreatedAdmin: &org.CreatedAdmin{
|
||||||
|
UserId: integration.NotEmpty,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -180,10 +195,14 @@ func TestServer_CreateOrganization(t *testing.T) {
|
|||||||
// organization id must be the same as the resourceOwner
|
// organization id must be the same as the resourceOwner
|
||||||
|
|
||||||
// check the admins
|
// check the admins
|
||||||
require.Len(t, got.GetCreatedAdmins(), len(tt.want.GetCreatedAdmins()))
|
for i, admin := range tt.want.GetOrganizationAdmins() {
|
||||||
for i, admin := range tt.want.GetCreatedAdmins() {
|
gotAdmin := got.GetOrganizationAdmins()[i].OrganizationAdmin
|
||||||
gotAdmin := got.GetCreatedAdmins()[i]
|
switch admin := admin.OrganizationAdmin.(type) {
|
||||||
assertCreatedAdmin(t, admin, gotAdmin)
|
case *org.OrganizationAdmin_CreatedAdmin:
|
||||||
|
assertCreatedAdmin(t, admin.CreatedAdmin, gotAdmin.(*org.OrganizationAdmin_CreatedAdmin).CreatedAdmin)
|
||||||
|
case *org.OrganizationAdmin_AssignedAdmin:
|
||||||
|
assert.Equal(t, admin.AssignedAdmin.GetUserId(), gotAdmin.(*org.OrganizationAdmin_AssignedAdmin).AssignedAdmin.GetUserId())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -681,7 +700,7 @@ func TestServer_DeactivateReactivateNonExistentOrganization(t *testing.T) {
|
|||||||
require.Contains(t, err.Error(), "Organisation not found")
|
require.Contains(t, err.Error(), "Organisation not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestServer_ActivateOrganization(t *testing.T) {
|
func TestServer_DeactivateReactivateOrganization(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
@@ -723,8 +742,8 @@ func TestServer_ActivateOrganization(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
require.NoError(ttt, err)
|
require.NoError(t, err)
|
||||||
require.Equal(ttt, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
|
require.Equal(t, v2beta_org.OrgState_ORG_STATE_INACTIVE, listOrgRes.Organizations[0].State)
|
||||||
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
}, retryDuration, tick, "timeout waiting for expected organizations being created")
|
||||||
|
|
||||||
return orgId
|
return orgId
|
||||||
@@ -853,7 +872,7 @@ func TestServer_DeactivateOrganization(t *testing.T) {
|
|||||||
now := time.Now()
|
now := time.Now()
|
||||||
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
|
assert.WithinRange(t, gotCD, now.Add(-time.Minute), now.Add(time.Minute))
|
||||||
|
|
||||||
// 3. check organization state is deactivated
|
// 4. check organization state is deactivated
|
||||||
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(CTX, 10*time.Minute)
|
retryDuration, tick := integration.WaitForAndTickWithMaxDuration(CTX, 10*time.Minute)
|
||||||
require.EventuallyWithT(t, func(ttt *assert.CollectT) {
|
require.EventuallyWithT(t, func(ttt *assert.CollectT) {
|
||||||
listOrgRes, err := Client.ListOrganizations(CTX, &v2beta_org.ListOrganizationsRequest{
|
listOrgRes, err := Client.ListOrganizations(CTX, &v2beta_org.ListOrganizationsRequest{
|
||||||
@@ -903,7 +922,7 @@ func TestServer_AddOerganizationDomain(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "add org domain, happy path",
|
name: "add org domain, happy path",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -916,7 +935,7 @@ func TestServer_AddOerganizationDomain(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "add org domain, twice",
|
name: "add org domain, twice",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
// 1. create organization
|
// 1. create organization
|
||||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||||
@@ -926,7 +945,7 @@ func TestServer_AddOerganizationDomain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
|
|
||||||
domain := "www.domain.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -956,16 +975,15 @@ func TestServer_AddOerganizationDomain(t *testing.T) {
|
|||||||
|
|
||||||
return orgId
|
return orgId
|
||||||
},
|
},
|
||||||
err: errors.New("AlreadyExists"),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "add org domain to non existent org",
|
name: "add org domain to non existent org",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
return "non-existing-org-id"
|
return "non-existing-org-id"
|
||||||
},
|
},
|
||||||
// BUG:
|
// BUG: should return a error
|
||||||
err: errors.New("Domain already exists"),
|
err: nil,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1000,7 +1018,7 @@ func TestServer_ListOrganizationDomain(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "list org domain, happy path",
|
name: "list org domain, happy path",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
// 1. create organization
|
// 1. create organization
|
||||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||||
@@ -1010,7 +1028,7 @@ func TestServer_ListOrganizationDomain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
|
|
||||||
domain := "www.domain.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -1064,7 +1082,7 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "delete org domain, happy path",
|
name: "delete org domain, happy path",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
// 1. create organization
|
// 1. create organization
|
||||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||||
@@ -1074,7 +1092,7 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
|
|
||||||
domain := "www.domain.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -1107,7 +1125,7 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "delete org domain, twice",
|
name: "delete org domain, twice",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
// 1. create organization
|
// 1. create organization
|
||||||
orgs, _, err := createOrgs(CTX, Client, 1)
|
orgs, _, err := createOrgs(CTX, Client, 1)
|
||||||
@@ -1117,7 +1135,7 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
|
|
||||||
domain := "www.domain.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -1157,7 +1175,7 @@ func TestServer_DeleteOerganizationDomain(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "delete org domain to non existent org",
|
name: "delete org domain to non existent org",
|
||||||
domain: "www.domain.com",
|
domain: gofakeit.URL(),
|
||||||
testFunc: func() string {
|
testFunc: func() string {
|
||||||
return "non-existing-org-id"
|
return "non-existing-org-id"
|
||||||
},
|
},
|
||||||
@@ -1202,7 +1220,7 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
|||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
// ctx := Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner)
|
// ctx := Instance.WithAuthorization(CTX, integration.UserTypeIAMOwner)
|
||||||
|
|
||||||
domain := "www.domain.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -1252,7 +1270,7 @@ func TestServer_AddListDeleteOrganizationDomain(t *testing.T) {
|
|||||||
}
|
}
|
||||||
orgId := orgs[0].Id
|
orgId := orgs[0].Id
|
||||||
|
|
||||||
domain := "www.domain2.com"
|
domain := gofakeit.URL()
|
||||||
// 2. add domain
|
// 2. add domain
|
||||||
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
addOrgDomainRes, err := Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
@@ -1339,7 +1357,7 @@ func TestServer_ValidateOrganizationDomain(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
domain := "www.domainnn.com"
|
domain := gofakeit.URL()
|
||||||
_, err = Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
_, err = Client.AddOrganizationDomain(CTX, &v2beta_org.AddOrganizationDomainRequest{
|
||||||
OrganizationId: orgId,
|
OrganizationId: orgId,
|
||||||
Domain: domain,
|
Domain: domain,
|
||||||
|
@@ -283,3 +283,4 @@ func (s *Server) getClaimedUserIDsOfOrgDomain(ctx context.Context, orgDomain, or
|
|||||||
}
|
}
|
||||||
return userIDs, nil
|
return userIDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,12 +13,13 @@ import (
|
|||||||
"github.com/zitadel/zitadel/internal/domain"
|
"github.com/zitadel/zitadel/internal/domain"
|
||||||
"github.com/zitadel/zitadel/internal/zerrors"
|
"github.com/zitadel/zitadel/internal/zerrors"
|
||||||
org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
|
org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
|
||||||
|
v2beta_org "github.com/zitadel/zitadel/pkg/grpc/org/v2beta"
|
||||||
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
|
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_createOrganizationRequestToCommand(t *testing.T) {
|
func Test_createOrganizationRequestToCommand(t *testing.T) {
|
||||||
type args struct {
|
type args struct {
|
||||||
request *org.CreateOrganizationRequest
|
request *v2beta_org.CreateOrganizationRequest
|
||||||
}
|
}
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -29,9 +30,9 @@ func Test_createOrganizationRequestToCommand(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "nil user",
|
name: "nil user",
|
||||||
args: args{
|
args: args{
|
||||||
request: &org.CreateOrganizationRequest{
|
request: &v2beta_org.CreateOrganizationRequest{
|
||||||
Name: "name",
|
Name: "name",
|
||||||
Admins: []*org.CreateOrganizationRequest_Admin{
|
Admins: []*v2beta_org.CreateOrganizationRequest_Admin{
|
||||||
{},
|
{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -41,11 +42,11 @@ func Test_createOrganizationRequestToCommand(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "user ID",
|
name: "user ID",
|
||||||
args: args{
|
args: args{
|
||||||
request: &org.CreateOrganizationRequest{
|
request: &v2beta_org.CreateOrganizationRequest{
|
||||||
Name: "name",
|
Name: "name",
|
||||||
Admins: []*org.CreateOrganizationRequest_Admin{
|
Admins: []*v2beta_org.CreateOrganizationRequest_Admin{
|
||||||
{
|
{
|
||||||
UserType: &org.CreateOrganizationRequest_Admin_UserId{
|
UserType: &v2beta_org.CreateOrganizationRequest_Admin_UserId{
|
||||||
UserId: "userID",
|
UserId: "userID",
|
||||||
},
|
},
|
||||||
Roles: nil,
|
Roles: nil,
|
||||||
@@ -66,11 +67,11 @@ func Test_createOrganizationRequestToCommand(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "human user",
|
name: "human user",
|
||||||
args: args{
|
args: args{
|
||||||
request: &org.CreateOrganizationRequest{
|
request: &v2beta_org.CreateOrganizationRequest{
|
||||||
Name: "name",
|
Name: "name",
|
||||||
Admins: []*org.CreateOrganizationRequest_Admin{
|
Admins: []*v2beta_org.CreateOrganizationRequest_Admin{
|
||||||
{
|
{
|
||||||
UserType: &org.CreateOrganizationRequest_Admin_Human{
|
UserType: &v2beta_org.CreateOrganizationRequest_Admin_Human{
|
||||||
Human: &user.AddHumanUserRequest{
|
Human: &user.AddHumanUserRequest{
|
||||||
Profile: &user.SetHumanProfile{
|
Profile: &user.SetHumanProfile{
|
||||||
GivenName: "firstname",
|
GivenName: "firstname",
|
||||||
@@ -123,7 +124,7 @@ func Test_createdOrganizationToPb(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
args args
|
args args
|
||||||
want *org.CreateOrganizationResponse
|
want *v2beta_org.CreateOrganizationResponse
|
||||||
wantErr error
|
wantErr error
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@@ -135,8 +136,8 @@ func Test_createdOrganizationToPb(t *testing.T) {
|
|||||||
EventDate: now,
|
EventDate: now,
|
||||||
ResourceOwner: "orgID",
|
ResourceOwner: "orgID",
|
||||||
},
|
},
|
||||||
CreatedAdmins: []*command.CreatedOrgAdmin{
|
OrgAdmins: []command.OrgAdmin{
|
||||||
{
|
&command.CreatedOrgAdmin{
|
||||||
ID: "id",
|
ID: "id",
|
||||||
EmailCode: gu.Ptr("emailCode"),
|
EmailCode: gu.Ptr("emailCode"),
|
||||||
PhoneCode: gu.Ptr("phoneCode"),
|
PhoneCode: gu.Ptr("phoneCode"),
|
||||||
@@ -147,11 +148,15 @@ func Test_createdOrganizationToPb(t *testing.T) {
|
|||||||
want: &org.CreateOrganizationResponse{
|
want: &org.CreateOrganizationResponse{
|
||||||
CreationDate: timestamppb.New(now),
|
CreationDate: timestamppb.New(now),
|
||||||
Id: "orgID",
|
Id: "orgID",
|
||||||
CreatedAdmins: []*org.CreatedAdmin{
|
OrganizationAdmins: []*org.OrganizationAdmin{
|
||||||
{
|
{
|
||||||
UserId: "id",
|
OrganizationAdmin: &org.OrganizationAdmin_CreatedAdmin{
|
||||||
EmailCode: gu.Ptr("emailCode"),
|
CreatedAdmin: &org.CreatedAdmin{
|
||||||
PhoneCode: gu.Ptr("phoneCode"),
|
UserId: "id",
|
||||||
|
EmailCode: gu.Ptr("emailCode"),
|
||||||
|
PhoneCode: gu.Ptr("phoneCode"),
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@@ -212,6 +212,7 @@ func (c *orgSetupCommands) createdAdmins() []OrgAdmin {
|
|||||||
users := make([]OrgAdmin, 0, len(c.admins))
|
users := make([]OrgAdmin, 0, len(c.admins))
|
||||||
for _, admin := range c.admins {
|
for _, admin := range c.admins {
|
||||||
if admin.ID != "" && admin.Human == nil {
|
if admin.ID != "" && admin.Human == nil {
|
||||||
|
users = append(users, &AssignedOrgAdmin{ID: admin.ID})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if admin.Human != nil {
|
if admin.Human != nil {
|
||||||
|
@@ -959,3 +959,4 @@ message DeleteOrganizationMetadataResponse{
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user