forked from baron/baron-sso
웍스 동기화 이력확인 기능추가
This commit is contained in:
@@ -180,13 +180,119 @@ func worksmobileDirectoryAuthConfigured() bool {
|
||||
|
||||
func redactWorksmobileOutboxPayloads(jobs []domain.WorksmobileOutbox) []domain.WorksmobileOutbox {
|
||||
for i := range jobs {
|
||||
if jobs[i].Payload != nil {
|
||||
jobs[i].Payload = nil
|
||||
}
|
||||
jobs[i].Payload = safeWorksmobileOutboxPayload(jobs[i].Payload)
|
||||
}
|
||||
return jobs
|
||||
}
|
||||
|
||||
func safeWorksmobileOutboxPayload(payload domain.JSONMap) domain.JSONMap {
|
||||
if payload == nil {
|
||||
return nil
|
||||
}
|
||||
safe := domain.JSONMap{}
|
||||
for _, key := range []string{
|
||||
"tenantRootId",
|
||||
"loginEmail",
|
||||
"displayName",
|
||||
"primaryLeafOrgName",
|
||||
"credentialBatchId",
|
||||
"credentialOperation",
|
||||
"credentialBatchCreatedAt",
|
||||
"worksmobileId",
|
||||
"externalKey",
|
||||
"domainId",
|
||||
"name",
|
||||
"email",
|
||||
"matchLocalPart",
|
||||
"baronStatus",
|
||||
} {
|
||||
if value, ok := payload[key]; ok && safeWorksmobilePayloadValue(value) != nil {
|
||||
safe[key] = value
|
||||
}
|
||||
}
|
||||
if summary := safeWorksmobileRequestSummary(payload["request"]); len(summary) > 0 {
|
||||
safe["requestSummary"] = summary
|
||||
}
|
||||
return safe
|
||||
}
|
||||
|
||||
func safeWorksmobilePayloadValue(value any) any {
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
if strings.TrimSpace(v) == "" {
|
||||
return nil
|
||||
}
|
||||
return v
|
||||
case nil:
|
||||
return nil
|
||||
default:
|
||||
return value
|
||||
}
|
||||
}
|
||||
|
||||
func safeWorksmobileRequestSummary(request any) domain.JSONMap {
|
||||
switch v := request.(type) {
|
||||
case WorksmobileUserPayload:
|
||||
summary := domain.JSONMap{}
|
||||
safeSetWorksmobileSummary(summary, "email", v.Email)
|
||||
safeSetWorksmobileSummary(summary, "displayName", v.UserName.LastName)
|
||||
safeSetWorksmobileSummary(summary, "userExternalKey", v.UserExternalKey)
|
||||
safeSetWorksmobileSummary(summary, "cellPhone", v.CellPhone)
|
||||
safeSetWorksmobileSummary(summary, "employeeNumber", v.EmployeeNumber)
|
||||
safeSetWorksmobileSummary(summary, "task", v.Task)
|
||||
return summary
|
||||
case WorksmobilePasswordResetPayload:
|
||||
summary := domain.JSONMap{}
|
||||
safeSetWorksmobileSummary(summary, "email", v.Email)
|
||||
return summary
|
||||
case WorksmobileOrgUnitPayload:
|
||||
summary := domain.JSONMap{}
|
||||
safeSetWorksmobileSummary(summary, "email", v.Email)
|
||||
safeSetWorksmobileSummary(summary, "orgUnitName", v.OrgUnitName)
|
||||
safeSetWorksmobileSummary(summary, "orgUnitExternalKey", v.OrgUnitExternalKey)
|
||||
safeSetWorksmobileSummary(summary, "parentOrgUnitId", v.ParentOrgUnitID)
|
||||
if v.DomainID > 0 {
|
||||
summary["domainId"] = v.DomainID
|
||||
}
|
||||
return summary
|
||||
case map[string]any:
|
||||
return safeWorksmobileRequestSummaryFromMap(v)
|
||||
case domain.JSONMap:
|
||||
return safeWorksmobileRequestSummaryFromMap(map[string]any(v))
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func safeWorksmobileRequestSummaryFromMap(request map[string]any) domain.JSONMap {
|
||||
summary := domain.JSONMap{}
|
||||
for _, key := range []string{
|
||||
"email",
|
||||
"userExternalKey",
|
||||
"cellPhone",
|
||||
"employeeNumber",
|
||||
"task",
|
||||
"orgUnitName",
|
||||
"orgUnitExternalKey",
|
||||
"parentOrgUnitId",
|
||||
"domainId",
|
||||
} {
|
||||
if value, ok := request[key]; ok && safeWorksmobilePayloadValue(value) != nil {
|
||||
summary[key] = value
|
||||
}
|
||||
}
|
||||
if userName, ok := request["userName"].(map[string]any); ok {
|
||||
safeSetWorksmobileSummary(summary, "displayName", stringValue(userName["lastName"]))
|
||||
}
|
||||
return summary
|
||||
}
|
||||
|
||||
func safeSetWorksmobileSummary(summary domain.JSONMap, key string, value string) {
|
||||
if value = strings.TrimSpace(value); value != "" {
|
||||
summary[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
func (s *worksmobileSyncService) GetComparison(ctx context.Context, tenantID string, includeMatched bool) (WorksmobileComparison, error) {
|
||||
root, err := s.hanmacRoot(ctx, tenantID)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user