Fix mapping google workspace

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-03-11 11:33:12 +01:00
parent 467973e9b6
commit 3354bbd16b
2 changed files with 10 additions and 5 deletions

View File

@@ -46,6 +46,7 @@ type (
EnterpriseOrganization string `json:"-"` EnterpriseOrganization string `json:"-"`
Division string `json:"-"` Division string `json:"-"`
EmployeeNumber string `json:"-"` EmployeeNumber string `json:"-"`
UserType string `json:"-"`
ManagerValue string `json:"-"` ManagerValue string `json:"-"`
PreferredLanguage string `json:"-"` PreferredLanguage string `json:"-"`
} }
@@ -229,6 +230,9 @@ func buildUserPayload(user *User) map[string]any {
if user.ExternalID != "" { if user.ExternalID != "" {
payload["externalId"] = user.ExternalID payload["externalId"] = user.ExternalID
} }
if user.UserType != "" {
payload["userType"] = user.UserType
}
if user.PreferredLanguage != "" { if user.PreferredLanguage != "" {
payload["preferredLanguage"] = user.PreferredLanguage payload["preferredLanguage"] = user.PreferredLanguage
} }

View File

@@ -89,10 +89,11 @@ func (p *Provider) ListUsers(ctx context.Context) (scimclient.Users, error) {
GivenName: u.Name.GivenName, GivenName: u.Name.GivenName,
FamilyName: u.Name.FamilyName, FamilyName: u.Name.FamilyName,
Active: !u.Suspended && !u.Archived, Active: !u.Suspended && !u.Archived,
ExternalID: u.Id,
} }
p.extractOrganizationFields(u.Organizations, &user) p.extractOrganizationFields(u.Organizations, &user)
p.extractExternalID(u.ExternalIds, &user) p.extractEmployeeNumber(u.ExternalIds, &user)
p.extractRelations(u.Relations, &user) p.extractRelations(u.Relations, &user)
p.extractPreferredLanguage(u.Languages, &user) p.extractPreferredLanguage(u.Languages, &user)
@@ -147,10 +148,10 @@ func (p *Provider) extractOrganizationFields(raw interface{}, user *scimclient.U
user.Department = org.Department user.Department = org.Department
user.CostCenter = org.CostCenter user.CostCenter = org.CostCenter
user.EnterpriseOrganization = org.Name user.EnterpriseOrganization = org.Name
user.Division = org.Description user.UserType = org.Description
} }
func (p *Provider) extractExternalID(raw interface{}, user *scimclient.User) { func (p *Provider) extractEmployeeNumber(raw interface{}, user *scimclient.User) {
if raw == nil { if raw == nil {
return return
} }
@@ -167,13 +168,13 @@ func (p *Provider) extractExternalID(raw interface{}, user *scimclient.User) {
for _, id := range ids { for _, id := range ids {
if id.Type == "organization" && id.Value != "" { if id.Type == "organization" && id.Value != "" {
user.ExternalID = id.Value user.EmployeeNumber = id.Value
return return
} }
} }
if len(ids) > 0 && ids[0].Value != "" { if len(ids) > 0 && ids[0].Value != "" {
user.ExternalID = ids[0].Value user.EmployeeNumber = ids[0].Value
} }
} }