mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 00:47:33 +00:00
feat: set up org (#1157)
* add setup steps * refactoring * omitempty * cleanup * begin org * create org * setup org * setup org * merge * fixes * fixes * fixes
This commit is contained in:
@@ -10,21 +10,21 @@ import (
|
||||
"github.com/caos/zitadel/pkg/grpc/admin"
|
||||
)
|
||||
|
||||
func addIamMemberToDomain(member *admin.AddIamMemberRequest) *domain.IAMMember {
|
||||
return &domain.IAMMember{
|
||||
func addIamMemberToDomain(member *admin.AddIamMemberRequest) *domain.Member {
|
||||
return &domain.Member{
|
||||
UserID: member.UserId,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
func changeIamMemberToDomain(member *admin.ChangeIamMemberRequest) *domain.IAMMember {
|
||||
return &domain.IAMMember{
|
||||
func changeIamMemberToDomain(member *admin.ChangeIamMemberRequest) *domain.Member {
|
||||
return &domain.Member{
|
||||
UserID: member.UserId,
|
||||
Roles: member.Roles,
|
||||
}
|
||||
}
|
||||
|
||||
func iamMemberFromDomain(member *domain.IAMMember) *admin.IamMember {
|
||||
func iamMemberFromDomain(member *domain.Member) *admin.IamMember {
|
||||
creationDate, err := ptypes.TimestampProto(member.CreationDate)
|
||||
logging.Log("GRPC-Lsp76").OnError(err).Debug("date parse failed")
|
||||
|
||||
|
@@ -30,12 +30,12 @@ func (s *Server) IsOrgUnique(ctx context.Context, request *admin.UniqueOrgReques
|
||||
return &admin.UniqueOrgResponse{IsUnique: isUnique}, err
|
||||
}
|
||||
|
||||
func (s *Server) SetUpOrg(ctx context.Context, orgSetUp *admin.OrgSetUpRequest) (_ *admin.OrgSetUpResponse, err error) {
|
||||
setUp, err := s.org.SetUpOrg(ctx, setUpRequestToModel(orgSetUp))
|
||||
func (s *Server) SetUpOrg(ctx context.Context, orgSetUp *admin.OrgSetUpRequest) (_ *empty.Empty, err error) {
|
||||
err = s.command.SetUpOrg(ctx, orgCreateRequestToDomain(orgSetUp.Org), userCreateRequestToDomain(orgSetUp.User))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return setUpOrgResponseFromModel(setUp), err
|
||||
return &empty.Empty{}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultOrgIamPolicy(ctx context.Context, _ *empty.Empty) (_ *admin.OrgIamPolicyView, err error) {
|
||||
|
@@ -2,9 +2,10 @@ package admin
|
||||
|
||||
import (
|
||||
"github.com/caos/logging"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
|
||||
iam_model "github.com/caos/zitadel/internal/iam/model"
|
||||
"github.com/caos/zitadel/internal/v2/domain"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
|
||||
admin_model "github.com/caos/zitadel/internal/admin/model"
|
||||
"github.com/caos/zitadel/internal/eventstore/models"
|
||||
@@ -14,20 +15,13 @@ import (
|
||||
"github.com/caos/zitadel/pkg/grpc/admin"
|
||||
)
|
||||
|
||||
func setUpRequestToModel(setUp *admin.OrgSetUpRequest) *admin_model.SetupOrg {
|
||||
return &admin_model.SetupOrg{
|
||||
Org: orgCreateRequestToModel(setUp.Org),
|
||||
User: userCreateRequestToModel(setUp.User),
|
||||
}
|
||||
}
|
||||
|
||||
func orgCreateRequestToModel(org *admin.CreateOrgRequest) *org_model.Org {
|
||||
o := &org_model.Org{
|
||||
Domains: []*org_model.OrgDomain{},
|
||||
func orgCreateRequestToDomain(org *admin.CreateOrgRequest) *domain.Org {
|
||||
o := &domain.Org{
|
||||
Domains: []*domain.OrgDomain{},
|
||||
Name: org.Name,
|
||||
}
|
||||
if org.Domain != "" {
|
||||
o.Domains = append(o.Domains, &org_model.OrgDomain{Domain: org.Domain})
|
||||
o.Domains = append(o.Domains, &domain.OrgDomain{Domain: org.Domain})
|
||||
}
|
||||
|
||||
return o
|
||||
|
@@ -3,11 +3,83 @@ package admin
|
||||
import (
|
||||
"github.com/caos/logging"
|
||||
usr_model "github.com/caos/zitadel/internal/user/model"
|
||||
"github.com/caos/zitadel/internal/v2/domain"
|
||||
"github.com/caos/zitadel/pkg/grpc/admin"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
func userCreateRequestToDomain(user *admin.CreateUserRequest) *domain.User {
|
||||
var human *domain.Human
|
||||
var machine *domain.Machine
|
||||
|
||||
if h := user.GetHuman(); h != nil {
|
||||
human = humanCreateToDomain(h)
|
||||
}
|
||||
if m := user.GetMachine(); m != nil {
|
||||
machine = machineCreateToDomain(m)
|
||||
}
|
||||
|
||||
return &domain.User{
|
||||
UserName: user.UserName,
|
||||
Human: human,
|
||||
Machine: machine,
|
||||
}
|
||||
}
|
||||
|
||||
func humanCreateToDomain(u *admin.CreateHumanRequest) *domain.Human {
|
||||
preferredLanguage, err := language.Parse(u.PreferredLanguage)
|
||||
logging.Log("GRPC-1ouQc").OnError(err).Debug("language malformed")
|
||||
|
||||
human := &domain.Human{
|
||||
Profile: &domain.Profile{
|
||||
FirstName: u.FirstName,
|
||||
LastName: u.LastName,
|
||||
NickName: u.NickName,
|
||||
PreferredLanguage: preferredLanguage,
|
||||
Gender: genderToDomain(u.Gender),
|
||||
},
|
||||
Email: &domain.Email{
|
||||
EmailAddress: u.Email,
|
||||
IsEmailVerified: u.IsEmailVerified,
|
||||
},
|
||||
Address: &domain.Address{
|
||||
Country: u.Country,
|
||||
Locality: u.Locality,
|
||||
PostalCode: u.PostalCode,
|
||||
Region: u.Region,
|
||||
StreetAddress: u.StreetAddress,
|
||||
},
|
||||
}
|
||||
if u.Password != "" {
|
||||
human.Password = &domain.Password{SecretString: u.Password}
|
||||
}
|
||||
if u.Phone != "" {
|
||||
human.Phone = &domain.Phone{PhoneNumber: u.Phone, IsPhoneVerified: u.IsPhoneVerified}
|
||||
}
|
||||
return human
|
||||
}
|
||||
|
||||
func genderToDomain(gender admin.Gender) domain.Gender {
|
||||
switch gender {
|
||||
case admin.Gender_GENDER_FEMALE:
|
||||
return domain.GenderFemale
|
||||
case admin.Gender_GENDER_MALE:
|
||||
return domain.GenderMale
|
||||
case admin.Gender_GENDER_DIVERSE:
|
||||
return domain.GenderDiverse
|
||||
default:
|
||||
return domain.GenderUnspecified
|
||||
}
|
||||
}
|
||||
|
||||
func machineCreateToDomain(machine *admin.CreateMachineRequest) *domain.Machine {
|
||||
return &domain.Machine{
|
||||
Name: machine.Name,
|
||||
Description: machine.Description,
|
||||
}
|
||||
}
|
||||
|
||||
func userCreateRequestToModel(user *admin.CreateUserRequest) *usr_model.User {
|
||||
var human *usr_model.Human
|
||||
var machine *usr_model.Machine
|
||||
|
Reference in New Issue
Block a user