forked from baron/baron-sso
동기화 기초구조 마련
This commit is contained in:
@@ -21,6 +21,7 @@ const (
|
||||
type WorksmobileOrgUnitPayload struct {
|
||||
DomainID int64 `json:"domainId"`
|
||||
OrgUnitName string `json:"orgUnitName"`
|
||||
Email string `json:"email,omitempty"`
|
||||
OrgUnitExternalKey string `json:"orgUnitExternalKey"`
|
||||
ParentOrgUnitID string `json:"parentOrgUnitId,omitempty"`
|
||||
DisplayOrder int `json:"displayOrder"`
|
||||
@@ -78,6 +79,7 @@ func BuildWorksmobileOrgUnitPayloadForDomainTenant(tenant domain.Tenant, domainT
|
||||
payload := WorksmobileOrgUnitPayload{
|
||||
DomainID: domainID,
|
||||
OrgUnitName: strings.TrimSpace(tenant.Name),
|
||||
Email: buildWorksmobileOrgUnitEmail(tenant, domainTenant),
|
||||
OrgUnitExternalKey: tenant.ID,
|
||||
DisplayOrder: displayOrder,
|
||||
}
|
||||
@@ -90,6 +92,48 @@ func BuildWorksmobileOrgUnitPayloadForDomainTenant(tenant domain.Tenant, domainT
|
||||
return payload, nil
|
||||
}
|
||||
|
||||
func buildWorksmobileOrgUnitEmail(tenant domain.Tenant, domainTenant domain.Tenant) string {
|
||||
slug := strings.ToLower(strings.TrimSpace(tenant.Slug))
|
||||
if slug == "" {
|
||||
return ""
|
||||
}
|
||||
if domainName := worksmobileTenantMailDomain(domainTenant); domainName != "" {
|
||||
return slug + "@" + domainName
|
||||
}
|
||||
for _, candidate := range append([]domain.TenantDomain{}, domainTenant.Domains...) {
|
||||
domainName := strings.ToLower(strings.TrimSpace(candidate.Domain))
|
||||
if domainName != "" {
|
||||
return slug + "@" + domainName
|
||||
}
|
||||
}
|
||||
for _, candidate := range tenant.Domains {
|
||||
domainName := strings.ToLower(strings.TrimSpace(candidate.Domain))
|
||||
if domainName != "" {
|
||||
return slug + "@" + domainName
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func worksmobileTenantMailDomain(tenant domain.Tenant) string {
|
||||
envKey := strings.TrimSuffix(worksmobileTenantDomainIDEnvKey(tenant), "_DOMAIN_ID")
|
||||
if domainName := strings.ToLower(strings.TrimSpace(os.Getenv(envKey + "_MAIL_DOMAIN"))); domainName != "" {
|
||||
return domainName
|
||||
}
|
||||
switch envKey {
|
||||
case "SAMAN":
|
||||
return "samaneng.com"
|
||||
case "HANMAC":
|
||||
return "hanmaceng.co.kr"
|
||||
case "GPDTDC":
|
||||
return "baroncs.co.kr"
|
||||
case "BARONGROUP":
|
||||
return "brsw.kr"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
func BuildWorksmobileUserPayload(user domain.User, tenant domain.Tenant, rootConfig domain.JSONMap) (WorksmobileUserPayload, error) {
|
||||
return BuildWorksmobileUserPayloadForDomainTenant(user, tenant, tenant, rootConfig)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user