(ctx context.Context, db database.Store, rows []database.OrganizationMembersRow, aiSeatSet map[uuid.UUID]struct{})
| 565 | } |
| 566 | |
| 567 | func convertOrganizationMembersWithUserData(ctx context.Context, db database.Store, rows []database.OrganizationMembersRow, aiSeatSet map[uuid.UUID]struct{}) ([]codersdk.OrganizationMemberWithUserData, error) { |
| 568 | members := make([]database.OrganizationMember, 0) |
| 569 | for _, row := range rows { |
| 570 | members = append(members, row.OrganizationMember) |
| 571 | } |
| 572 | |
| 573 | convertedMembers, err := convertOrganizationMembers(ctx, db, members) |
| 574 | if err != nil { |
| 575 | return nil, err |
| 576 | } |
| 577 | if len(convertedMembers) != len(rows) { |
| 578 | return nil, xerrors.Errorf("conversion failed, mismatch slice lengths") |
| 579 | } |
| 580 | |
| 581 | converted := make([]codersdk.OrganizationMemberWithUserData, 0) |
| 582 | for i := range convertedMembers { |
| 583 | _, hasAISeat := aiSeatSet[rows[i].OrganizationMember.UserID] |
| 584 | converted = append(converted, codersdk.OrganizationMemberWithUserData{ |
| 585 | Username: rows[i].Username, |
| 586 | AvatarURL: rows[i].AvatarURL, |
| 587 | Name: rows[i].Name, |
| 588 | Email: rows[i].Email, |
| 589 | GlobalRoles: db2sdk.SlimRolesFromNames(rows[i].GlobalRoles), |
| 590 | HasAISeat: hasAISeat, |
| 591 | LastSeenAt: rows[i].LastSeenAt, |
| 592 | Status: codersdk.UserStatus(rows[i].Status), |
| 593 | IsServiceAccount: rows[i].IsServiceAccount, |
| 594 | LoginType: codersdk.LoginType(rows[i].LoginType), |
| 595 | UserCreatedAt: rows[i].UserCreatedAt, |
| 596 | UserUpdatedAt: rows[i].UserUpdatedAt, |
| 597 | OrganizationMember: convertedMembers[i], |
| 598 | }) |
| 599 | } |
| 600 | |
| 601 | return converted, nil |
| 602 | } |
| 603 | |
| 604 | // manualOrganizationMembership checks if the user is an OIDC user and if organization sync is enabled. |
| 605 | // If organization sync is enabled, manual organization assignment is not allowed, |
no test coverage detected