Rename team DB methods to encourage lighter-weight usage (#35572)
For #35357. # Checklist for submitter If some of the following don't apply, delete the relevant line. No changes file as this is a zero-functionality-change refactor. Performance improvements are in their own PR, which includes a changes file. - [x] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) ## Testing - [x] Added/updated automated tests - [ ] QA'd all new/changed functionality manually
This commit is contained in:
@@ -180,7 +180,7 @@ func (svc *Service) processCalendarEvent(ctx context.Context, eventDetails *flee
|
||||
|
||||
// This function is called when a new event is being created.
|
||||
var team *fleet.Team
|
||||
team, err = svc.ds.TeamWithoutExtras(ctx, *eventDetails.TeamID)
|
||||
team, err = svc.ds.TeamLite(ctx, *eventDetails.TeamID)
|
||||
if err != nil {
|
||||
return "", false, err
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ func (svc *Service) AddFleetMaintainedApp(
|
||||
// Create activity
|
||||
var teamName *string
|
||||
if payload.TeamID != nil && *payload.TeamID != 0 {
|
||||
t, err := svc.ds.Team(ctx, *payload.TeamID)
|
||||
t, err := svc.ds.TeamWithExtras(ctx, *payload.TeamID)
|
||||
if err != nil {
|
||||
return 0, ctxerr.Wrap(ctx, err, "getting team")
|
||||
}
|
||||
|
||||
@@ -474,7 +474,7 @@ func (svc *Service) GetMDMAppleBootstrapPackageSummary(ctx context.Context, team
|
||||
}
|
||||
|
||||
if teamID != nil {
|
||||
_, err := svc.ds.Team(ctx, tmID)
|
||||
_, err := svc.ds.TeamWithExtras(ctx, tmID)
|
||||
if err != nil {
|
||||
return &fleet.MDMAppleBootstrapPackageSummary{}, err
|
||||
}
|
||||
@@ -586,7 +586,7 @@ func (svc *Service) SetOrUpdateMDMAppleSetupAssistant(ctx context.Context, asst
|
||||
var tm *fleet.Team
|
||||
if asst.TeamID != nil {
|
||||
var err error
|
||||
tm, err = svc.ds.Team(ctx, *asst.TeamID)
|
||||
tm, err = svc.ds.TeamWithExtras(ctx, *asst.TeamID)
|
||||
if err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err, "get team")
|
||||
}
|
||||
@@ -691,7 +691,7 @@ func (svc *Service) DeleteMDMAppleSetupAssistant(ctx context.Context, teamID *ui
|
||||
|
||||
var teamName *string
|
||||
if teamID != nil {
|
||||
tm, err := svc.ds.Team(ctx, *teamID)
|
||||
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "get team")
|
||||
}
|
||||
@@ -1493,7 +1493,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
|
||||
token.IPadOSDefaultTeamID = nil
|
||||
|
||||
if macOSTeamID != nil && *macOSTeamID != 0 {
|
||||
macOSTeam, err := svc.ds.Team(ctx, *macOSTeamID)
|
||||
macOSTeam, err := svc.ds.TeamWithExtras(ctx, *macOSTeamID)
|
||||
if err != nil {
|
||||
return nil, &fleet.BadRequestError{
|
||||
Message: fmt.Sprintf("team with ID %d not found", *macOSTeamID),
|
||||
@@ -1507,7 +1507,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
|
||||
}
|
||||
|
||||
if iOSTeamID != nil && *iOSTeamID != 0 {
|
||||
iOSTeam, err := svc.ds.Team(ctx, *iOSTeamID)
|
||||
iOSTeam, err := svc.ds.TeamWithExtras(ctx, *iOSTeamID)
|
||||
if err != nil {
|
||||
return nil, &fleet.BadRequestError{
|
||||
Message: fmt.Sprintf("team with ID %d not found", *iOSTeamID),
|
||||
@@ -1520,7 +1520,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
|
||||
}
|
||||
|
||||
if iPadOSTeamID != nil && *iPadOSTeamID != 0 {
|
||||
iPadOSTeam, err := svc.ds.Team(ctx, *iPadOSTeamID)
|
||||
iPadOSTeam, err := svc.ds.TeamWithExtras(ctx, *iPadOSTeamID)
|
||||
if err != nil {
|
||||
return nil, &fleet.BadRequestError{
|
||||
Message: fmt.Sprintf("team with ID %d not found", *iPadOSTeamID),
|
||||
|
||||
@@ -307,7 +307,7 @@ func isDeviceReleasedManually(ctx context.Context, ds fleet.Datastore, host *fle
|
||||
}
|
||||
manualRelease = ac.MDM.MacOSSetup.EnableReleaseDeviceManually.Value
|
||||
} else {
|
||||
tm, err := ds.Team(ctx, *host.TeamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *host.TeamID)
|
||||
if err != nil {
|
||||
return false, ctxerr.Wrap(ctx, err, "get Team to read enable_release_device_manually")
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ func (svc *Service) SetSetupExperienceSoftware(ctx context.Context, platform str
|
||||
return fleet.NewUserMessageError(errors.New("Couldn’t add setup experience software. To add software, first disable manual_agent_install."), http.StatusUnprocessableEntity)
|
||||
}
|
||||
} else {
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "load team")
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func (svc *Service) SetSetupExperienceScript(ctx context.Context, teamID *uint,
|
||||
return fleet.NewUserMessageError(errors.New("Couldn’t add setup experience script. To add script, first disable manual_agent_install."), http.StatusUnprocessableEntity)
|
||||
}
|
||||
} else {
|
||||
team, err := svc.ds.Team(ctx, *teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "load team")
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ func (svc *Service) UploadSoftwareInstaller(ctx context.Context, payload *fleet.
|
||||
|
||||
var teamName *string
|
||||
if payload.TeamID != nil && *payload.TeamID != 0 {
|
||||
t, err := svc.ds.Team(ctx, *payload.TeamID)
|
||||
t, err := svc.ds.TeamWithExtras(ctx, *payload.TeamID)
|
||||
if err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err, "getting team name on upload software installer")
|
||||
}
|
||||
@@ -283,7 +283,7 @@ func (svc *Service) UpdateSoftwareInstaller(ctx context.Context, payload *fleet.
|
||||
|
||||
var teamName *string
|
||||
if *payload.TeamID != 0 {
|
||||
t, err := svc.ds.TeamWithoutExtras(ctx, *payload.TeamID)
|
||||
t, err := svc.ds.TeamLite(ctx, *payload.TeamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -793,7 +793,7 @@ func (svc *Service) deleteVPPApp(ctx context.Context, teamID *uint, meta *fleet.
|
||||
|
||||
var teamName *string
|
||||
if teamID != nil && *teamID != 0 {
|
||||
t, err := svc.ds.Team(ctx, *teamID)
|
||||
t, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "getting team name for deleted VPP app")
|
||||
}
|
||||
@@ -843,7 +843,7 @@ func (svc *Service) deleteSoftwareInstaller(ctx context.Context, meta *fleet.Sof
|
||||
|
||||
var teamName *string
|
||||
if meta.TeamID != nil {
|
||||
t, err := svc.ds.Team(ctx, *meta.TeamID)
|
||||
t, err := svc.ds.TeamWithExtras(ctx, *meta.TeamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "getting team name for deleted software")
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ func (svc *Service) ModifyTeam(ctx context.Context, teamID uint, payload fleet.T
|
||||
return nil, err
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -462,7 +462,7 @@ func (svc *Service) ModifyTeamAgentOptions(ctx context.Context, teamID uint, tea
|
||||
return nil, err
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -531,7 +531,7 @@ func (svc *Service) AddTeamUsers(ctx context.Context, teamID uint, users []fleet
|
||||
}
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -564,7 +564,7 @@ func (svc *Service) DeleteTeamUsers(ctx context.Context, teamID uint, users []fl
|
||||
idMap[user.ID] = true
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -589,7 +589,7 @@ func (svc *Service) ListTeamUsers(ctx context.Context, teamID uint, opt fleet.Li
|
||||
return nil, err
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -647,7 +647,7 @@ func (svc *Service) DeleteTeam(ctx context.Context, teamID uint) error {
|
||||
return err
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -775,7 +775,7 @@ func (svc *Service) GetTeam(ctx context.Context, teamID uint) (*fleet.Team, erro
|
||||
user = vc.User
|
||||
}
|
||||
|
||||
team, err := svc.ds.Team(ctx, teamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -856,7 +856,7 @@ func (svc *Service) teamByIDOrName(ctx context.Context, id *uint, name *string)
|
||||
err error
|
||||
)
|
||||
if id != nil {
|
||||
tm, err = svc.ds.Team(ctx, *id)
|
||||
tm, err = svc.ds.TeamWithExtras(ctx, *id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ func rolesChanged(oldGlobal *string, oldTeams []fleet.UserTeam, newGlobal *strin
|
||||
// to a `fleet.User` struct fields `GlobalRole` and `Teams` respectively.
|
||||
func (svc *Service) userRolesFromSSOAttributes(ctx context.Context, ssoRolesInfo fleet.SSORolesInfo) (globalRole *string, teamsRoles []fleet.UserTeam, err error) {
|
||||
for _, teamRole := range ssoRolesInfo.Teams {
|
||||
team, err := svc.ds.Team(ctx, teamRole.ID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, teamRole.ID)
|
||||
if err != nil {
|
||||
return nil, nil, ctxerr.Wrap(ctx, err, "invalid team")
|
||||
}
|
||||
|
||||
@@ -362,7 +362,7 @@ func (svc *Service) AddAppStoreApp(ctx context.Context, teamID *uint, appID flee
|
||||
|
||||
var teamName string
|
||||
if teamID != nil && *teamID != 0 {
|
||||
tm, err := svc.ds.Team(ctx, *teamID)
|
||||
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if fleet.IsNotFound(err) {
|
||||
return 0, fleet.NewInvalidArgumentError("team_id", fmt.Sprintf("team %d does not exist", *teamID)).
|
||||
WithStatus(http.StatusNotFound)
|
||||
@@ -560,7 +560,7 @@ func (svc *Service) UpdateAppStoreApp(ctx context.Context, titleID uint, teamID
|
||||
|
||||
var teamName string
|
||||
if teamID != nil && *teamID != 0 {
|
||||
tm, err := svc.ds.Team(ctx, *teamID)
|
||||
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if fleet.IsNotFound(err) {
|
||||
return nil, fleet.NewInvalidArgumentError("team_id", fmt.Sprintf("team %d does not exist", *teamID)).
|
||||
WithStatus(http.StatusNotFound)
|
||||
|
||||
@@ -30,7 +30,7 @@ func RequiresEnrollOTAAuthentication(ctx context.Context, ds fleet.AndroidDatast
|
||||
return noTeamIdPEnabled, nil
|
||||
}
|
||||
|
||||
tm, err := ds.Team(ctx, *secret.TeamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *secret.TeamID)
|
||||
if err != nil {
|
||||
return false, ctxerr.Wrap(ctx, err, "get team for settings")
|
||||
}
|
||||
|
||||
@@ -469,7 +469,7 @@ func testGetConfigEnableDiskEncryption(t *testing.T, ds *Datastore) {
|
||||
team1, err := ds.NewTeam(ctx, &fleet.Team{Name: "team1"})
|
||||
require.NoError(t, err)
|
||||
|
||||
tm, err := ds.Team(ctx, team1.ID)
|
||||
tm, err := ds.TeamWithExtras(ctx, team1.ID)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, tm)
|
||||
require.False(t, tm.Config.MDM.EnableDiskEncryption)
|
||||
|
||||
@@ -6802,7 +6802,7 @@ LIMIT 1`
|
||||
}
|
||||
} else {
|
||||
// use the team settings
|
||||
tm, err := ds.TeamWithoutExtras(ctx, *dest.TeamID)
|
||||
tm, err := ds.TeamLite(ctx, *dest.TeamID)
|
||||
if err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err, "getting team os update settings")
|
||||
}
|
||||
|
||||
@@ -4643,7 +4643,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
|
||||
}
|
||||
|
||||
checkTeamConfig := func(teamID uint, wantURL string) {
|
||||
tm, err := ds.Team(ctx, teamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, teamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, wantURL, tm.Config.MDM.MacOSSetup.BootstrapPackage.Value)
|
||||
}
|
||||
@@ -4745,7 +4745,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
|
||||
checkTeamConfig(teamID, "https://example.com/bootstrap.pkg")
|
||||
|
||||
// set other team config values so we can confirm they are not affected by bootstrap package changes
|
||||
tc, err := ds.Team(ctx, teamID)
|
||||
tc, err := ds.TeamWithExtras(ctx, teamID)
|
||||
require.NoError(t, err)
|
||||
tc.Config.MDM.MacOSSetup.MacOSSetupAssistant = optjson.SetString("/path/to/setupassistant")
|
||||
tc.Config.MDM.MacOSUpdates.Deadline = optjson.SetString("2024-01-01")
|
||||
@@ -4775,7 +4775,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
|
||||
checkTeamConfig(teamID, "https://example.com/bs.pkg")
|
||||
|
||||
// confirm other team config values are unchanged
|
||||
tc, err = ds.Team(ctx, teamID)
|
||||
tc, err = ds.TeamWithExtras(ctx, teamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.Config.MDM.MacOSSetup.MacOSSetupAssistant.Value, "/path/to/setupassistant")
|
||||
require.Equal(t, tc.Config.MDM.MacOSUpdates.Deadline.Value, "2024-01-01")
|
||||
|
||||
@@ -814,7 +814,7 @@ LIMIT
|
||||
})
|
||||
}
|
||||
if host.TeamID != nil && len(hostTeamQueriesStats) > 0 {
|
||||
team, err := ds.Team(ctx, *host.TeamID)
|
||||
team, err := ds.TeamWithExtras(ctx, *host.TeamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -539,7 +539,7 @@ func testMDMWindowsDiskEncryption(t *testing.T, ds *Datastore) {
|
||||
team, err := ds.NewTeam(ctx, &fleet.Team{Name: "team"})
|
||||
require.NoError(t, err)
|
||||
|
||||
tm, err := ds.Team(ctx, team.ID)
|
||||
tm, err := ds.TeamWithExtras(ctx, team.ID)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, tm)
|
||||
require.False(t, tm.Config.MDM.EnableDiskEncryption) // disk encryption is not enabled for team
|
||||
|
||||
@@ -233,7 +233,7 @@ func (ds *Datastore) MatchOrCreateSoftwareInstaller(ctx context.Context, payload
|
||||
if exists {
|
||||
teamName := fleet.TeamNameNoTeam
|
||||
if payload.TeamID != nil && *payload.TeamID > 0 {
|
||||
tm, err := ds.Team(ctx, *payload.TeamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *payload.TeamID)
|
||||
if err != nil {
|
||||
return 0, 0, ctxerr.Wrap(ctx, err, "get team for VPP app conflict error")
|
||||
}
|
||||
@@ -2191,7 +2191,7 @@ VALUES
|
||||
teamName := fleet.TeamNameNoTeam
|
||||
if tmID != nil {
|
||||
globalOrTeamID = *tmID
|
||||
tm, err := ds.Team(ctx, *tmID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *tmID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "fetch team for batch set software installers")
|
||||
}
|
||||
|
||||
@@ -55,11 +55,11 @@ func (ds *Datastore) NewTeam(ctx context.Context, team *fleet.Team) (*fleet.Team
|
||||
return team, nil
|
||||
}
|
||||
|
||||
func (ds *Datastore) Team(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
func (ds *Datastore) TeamWithExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
return teamDB(ctx, ds.reader(ctx), tid, true)
|
||||
}
|
||||
|
||||
func (ds *Datastore) TeamWithoutExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
func (ds *Datastore) TeamLite(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
return teamDB(ctx, ds.reader(ctx), tid, false)
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ func testTeamsGetSetDelete(t *testing.T, ds *Datastore) {
|
||||
require.NoError(t, err)
|
||||
assert.NotZero(t, team.ID)
|
||||
|
||||
team, err = ds.Team(context.Background(), team.ID)
|
||||
team, err = ds.TeamWithExtras(context.Background(), team.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, tt.name, team.Name)
|
||||
assert.Equal(t, tt.description, team.Description)
|
||||
@@ -214,7 +214,7 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
|
||||
team2, err := ds.NewTeam(context.Background(), &fleet.Team{Name: "team2"})
|
||||
require.NoError(t, err)
|
||||
|
||||
team1, err = ds.Team(context.Background(), team1.ID)
|
||||
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, team1.Users, 0)
|
||||
|
||||
@@ -226,11 +226,11 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
|
||||
team1, err = ds.SaveTeam(context.Background(), team1)
|
||||
require.NoError(t, err)
|
||||
|
||||
team1, err = ds.Team(context.Background(), team1.ID)
|
||||
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
|
||||
require.NoError(t, err)
|
||||
require.ElementsMatch(t, team1Users, team1.Users)
|
||||
// Ensure team 2 not effected
|
||||
team2, err = ds.Team(context.Background(), team2.ID)
|
||||
team2, err = ds.TeamWithExtras(context.Background(), team2.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Len(t, team2.Users, 0)
|
||||
|
||||
@@ -240,7 +240,7 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
|
||||
team1.Users = team1Users
|
||||
team1, err = ds.SaveTeam(context.Background(), team1)
|
||||
require.NoError(t, err)
|
||||
team1, err = ds.Team(context.Background(), team1.ID)
|
||||
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
|
||||
require.NoError(t, err)
|
||||
assert.ElementsMatch(t, team1Users, team1.Users)
|
||||
|
||||
@@ -250,12 +250,12 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
|
||||
team2.Users = team2Users
|
||||
team1, err = ds.SaveTeam(context.Background(), team1)
|
||||
require.NoError(t, err)
|
||||
team1, err = ds.Team(context.Background(), team1.ID)
|
||||
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
|
||||
require.NoError(t, err)
|
||||
assert.ElementsMatch(t, team1Users, team1.Users)
|
||||
team2, err = ds.SaveTeam(context.Background(), team2)
|
||||
require.NoError(t, err)
|
||||
team2, err = ds.Team(context.Background(), team2.ID)
|
||||
team2, err = ds.TeamWithExtras(context.Background(), team2.ID)
|
||||
require.NoError(t, err)
|
||||
assert.ElementsMatch(t, team2Users, team2.Users)
|
||||
}
|
||||
@@ -316,7 +316,7 @@ func testTeamsList(t *testing.T, ds *Datastore) {
|
||||
// Test that ds.Teams returns the same data as ds.ListTeams
|
||||
// (except list of users).
|
||||
for _, t1 := range teams {
|
||||
t2, err := ds.Team(context.Background(), t1.ID)
|
||||
t2, err := ds.TeamWithExtras(context.Background(), t1.ID)
|
||||
require.NoError(t, err)
|
||||
t2.Users = nil
|
||||
require.Equal(t, t1, t2)
|
||||
@@ -477,7 +477,7 @@ func testTeamsDeleteIntegrationsFromTeams(t *testing.T, ds *Datastore) {
|
||||
// expected values
|
||||
expected := [][]string{wantTm1, wantTm2, wantTm3}
|
||||
for i, id := range []uint{team1.ID, team2.ID, team3.ID} {
|
||||
tm, err := ds.Team(ctx, id)
|
||||
tm, err := ds.TeamWithExtras(ctx, id)
|
||||
require.NoError(t, err)
|
||||
|
||||
var urls []string
|
||||
@@ -544,7 +544,7 @@ func testTeamsFeatures(t *testing.T, ds *Datastore) {
|
||||
|
||||
// retrieving a team also returns a team with the default
|
||||
// features
|
||||
team, err = ds.Team(ctx, team.ID)
|
||||
team, err = ds.TeamWithExtras(ctx, team.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultFeatures, team.Config.Features)
|
||||
|
||||
@@ -571,7 +571,7 @@ func testTeamsFeatures(t *testing.T, ds *Datastore) {
|
||||
|
||||
// retrieving a team also returns a team with the default
|
||||
// features
|
||||
team, err = ds.Team(ctx, team.ID)
|
||||
team, err = ds.TeamWithExtras(ctx, team.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultFeatures, team.Config.Features)
|
||||
|
||||
@@ -625,7 +625,7 @@ func testTeamsMDMConfig(t *testing.T, ds *Datastore) {
|
||||
|
||||
// retrieving a team also returns a team with the default
|
||||
// settings
|
||||
team, err = ds.Team(ctx, team.ID)
|
||||
team, err = ds.TeamWithExtras(ctx, team.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultMDM, team.Config.MDM)
|
||||
|
||||
@@ -652,7 +652,7 @@ func testTeamsMDMConfig(t *testing.T, ds *Datastore) {
|
||||
|
||||
// retrieving a team also returns a team with the default
|
||||
// settings
|
||||
team, err = ds.Team(ctx, team.ID)
|
||||
team, err = ds.TeamWithExtras(ctx, team.ID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultMDM, team.Config.MDM)
|
||||
|
||||
|
||||
@@ -447,7 +447,7 @@ func (ds *Datastore) SetTeamVPPApps(ctx context.Context, teamID *uint, appFleets
|
||||
if len(toAddApps) > 0 {
|
||||
teamName = fleet.TeamNameNoTeam
|
||||
if teamID != nil && *teamID > 0 {
|
||||
tm, err := ds.Team(ctx, *teamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "get team for VPP app conflict error")
|
||||
}
|
||||
|
||||
@@ -553,10 +553,10 @@ type Datastore interface {
|
||||
NewTeam(ctx context.Context, team *Team) (*Team, error)
|
||||
// SaveTeam saves any changes to the team.
|
||||
SaveTeam(ctx context.Context, team *Team) (*Team, error)
|
||||
// Team retrieves the Team by ID.
|
||||
Team(ctx context.Context, tid uint) (*Team, error)
|
||||
// TeamWithoutExtras retrieves the Team by ID without extra fields.
|
||||
TeamWithoutExtras(ctx context.Context, tid uint) (*Team, error)
|
||||
// TeamWithExtras retrieves the Team by ID, including extra fields.
|
||||
TeamWithExtras(ctx context.Context, tid uint) (*Team, error)
|
||||
// TeamLite retrieves a Team by ID, including only id, created_at, name, filename, description, config fields.
|
||||
TeamLite(ctx context.Context, tid uint) (*Team, error)
|
||||
// DeleteTeam deletes the Team by ID.
|
||||
DeleteTeam(ctx context.Context, tid uint) error
|
||||
// TeamByName retrieves the Team by Name.
|
||||
@@ -2502,7 +2502,7 @@ type AndroidDatastore interface {
|
||||
GetMDMIdPAccountByUUID(ctx context.Context, uuid string) (*MDMIdPAccount, error)
|
||||
AssociateHostMDMIdPAccount(ctx context.Context, hostUUID, idpAcctUUID string) error
|
||||
TeamIDsWithSetupExperienceIdPEnabled(ctx context.Context) ([]uint, error)
|
||||
Team(ctx context.Context, tid uint) (*Team, error)
|
||||
TeamWithExtras(ctx context.Context, tid uint) (*Team, error)
|
||||
// BulkUpsertMDMAndroidHostProfiles bulk-adds/updates records to track the
|
||||
// status of a profile in a host.
|
||||
BulkUpsertMDMAndroidHostProfiles(ctx context.Context, payload []*MDMAndroidProfilePayload) error
|
||||
|
||||
@@ -908,7 +908,7 @@ func (d *DEPService) processDeviceResponse(
|
||||
func (d *DEPService) getProfileUUIDForTeam(ctx context.Context, tmID *uint, abmTokenOrgName string) (string, error) {
|
||||
var appleBMTeam *fleet.Team
|
||||
if tmID != nil {
|
||||
tm, err := d.ds.Team(ctx, *tmID)
|
||||
tm, err := d.ds.TeamWithExtras(ctx, *tmID)
|
||||
if err != nil && !fleet.IsNotFound(err) {
|
||||
return "", ctxerr.Wrap(ctx, err, "get team")
|
||||
}
|
||||
|
||||
@@ -5356,14 +5356,14 @@ func (s *DataStore) SaveTeam(ctx context.Context, team *fleet.Team) (*fleet.Team
|
||||
return s.SaveTeamFunc(ctx, team)
|
||||
}
|
||||
|
||||
func (s *DataStore) Team(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
func (s *DataStore) TeamWithExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
s.mu.Lock()
|
||||
s.TeamFuncInvoked = true
|
||||
s.mu.Unlock()
|
||||
return s.TeamFunc(ctx, tid)
|
||||
}
|
||||
|
||||
func (s *DataStore) TeamWithoutExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
func (s *DataStore) TeamLite(ctx context.Context, tid uint) (*fleet.Team, error) {
|
||||
s.mu.Lock()
|
||||
s.TeamWithoutExtrasFuncInvoked = true
|
||||
s.mu.Unlock()
|
||||
|
||||
@@ -207,7 +207,7 @@ func makeTeamConfigCache(ds fleet.Datastore, globalIntgs fleet.Integrations) fun
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
team, err := ds.Team(ctx, teamID)
|
||||
team, err := ds.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return cfg, ctxerr.Wrapf(ctx, err, "get team: %d", teamID)
|
||||
}
|
||||
|
||||
@@ -1043,7 +1043,7 @@ func (svc *Service) ListMDMAppleConfigProfiles(ctx context.Context, teamID uint)
|
||||
|
||||
if teamID >= 1 {
|
||||
// confirm that team exists
|
||||
if _, err := svc.ds.Team(ctx, teamID); err != nil {
|
||||
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -413,7 +413,7 @@ func (svc *Service) ResetAutomation(ctx context.Context, teamIDs, policyIDs []ui
|
||||
if err := svc.authz.Authorize(ctx, &fleet.Team{ID: id}, fleet.ActionWrite); err != nil {
|
||||
return err
|
||||
}
|
||||
t, err := svc.ds.Team(ctx, id)
|
||||
t, err := svc.ds.TeamWithExtras(ctx, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -961,7 +961,7 @@ func (svc *Service) createTransferredHostsActivity(ctx context.Context, teamID *
|
||||
|
||||
var teamName *string
|
||||
if teamID != nil {
|
||||
tm, err := svc.ds.Team(ctx, *teamID)
|
||||
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "get team for activity")
|
||||
}
|
||||
@@ -1894,7 +1894,7 @@ func (svc *Service) AggregatedMacadminsData(ctx context.Context, teamID *uint) (
|
||||
}
|
||||
|
||||
if teamID != nil {
|
||||
_, err := svc.ds.Team(ctx, *teamID)
|
||||
_, err := svc.ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -821,7 +821,7 @@ func (s *integrationEnterpriseTestSuite) TestTeamSpecsPermissions() {
|
||||
},
|
||||
}
|
||||
s.Do("POST", "/api/latest/fleet/spec/teams", editTeam1Spec, http.StatusOK)
|
||||
team1b, err := s.ds.Team(context.Background(), team1.ID)
|
||||
team1b, err := s.ds.TeamWithExtras(context.Background(), team1.ID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, *team1b.Config.AgentOptions, agentOpts)
|
||||
|
||||
|
||||
@@ -449,7 +449,7 @@ func (s *integrationMDMTestSuite) runDEPEnrollReleaseDeviceTest(t *testing.T, de
|
||||
if opts.TeamID != nil {
|
||||
payload["team_id"] = *opts.TeamID
|
||||
if opts.BootstrapPackage {
|
||||
team, err := s.ds.Team(ctx, *opts.TeamID)
|
||||
team, err := s.ds.TeamWithExtras(ctx, *opts.TeamID)
|
||||
require.NoError(t, err)
|
||||
|
||||
team.Config.MDM.MacOSSetup.BootstrapPackage = optjson.SetString("bootstrap.pkg")
|
||||
@@ -470,7 +470,7 @@ func (s *integrationMDMTestSuite) runDEPEnrollReleaseDeviceTest(t *testing.T, de
|
||||
// Get back to the default state.
|
||||
if opts.BootstrapPackage {
|
||||
if opts.TeamID != nil {
|
||||
team, err := s.ds.Team(ctx, *opts.TeamID)
|
||||
team, err := s.ds.TeamWithExtras(ctx, *opts.TeamID)
|
||||
require.NoError(t, err)
|
||||
|
||||
team.Config.MDM.MacOSSetup.BootstrapPackage = optjson.String{}
|
||||
|
||||
@@ -1421,7 +1421,7 @@ func (s *integrationMDMTestSuite) TestPuppetMatchPreassignProfiles() {
|
||||
h, err := s.ds.Host(ctx, mdmHost.ID)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, h.TeamID)
|
||||
tm1, err := s.ds.Team(ctx, *h.TeamID)
|
||||
tm1, err := s.ds.TeamWithExtras(ctx, *h.TeamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "g1", tm1.Name)
|
||||
require.True(t, tm1.Config.MDM.EnableDiskEncryption)
|
||||
@@ -1529,7 +1529,7 @@ func (s *integrationMDMTestSuite) TestPuppetMatchPreassignProfiles() {
|
||||
require.NotNil(t, h.TeamID)
|
||||
require.Equal(t, tm2.ID, *h.TeamID)
|
||||
// tm2 still has disk encryption and release device manually disabled
|
||||
tm2, err = s.ds.Team(ctx, *h.TeamID)
|
||||
tm2, err = s.ds.TeamWithExtras(ctx, *h.TeamID)
|
||||
require.NoError(t, err)
|
||||
require.False(t, tm2.Config.MDM.EnableDiskEncryption)
|
||||
require.False(t, tm2.Config.MDM.MacOSSetup.EnableReleaseDeviceManually.Value)
|
||||
@@ -1734,7 +1734,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
|
||||
require.NotNil(t, h1.TeamID)
|
||||
|
||||
// the team has the right name
|
||||
tm1, err := s.ds.Team(ctx, *h1.TeamID)
|
||||
tm1, err := s.ds.TeamWithExtras(ctx, *h1.TeamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "base - workstations", tm1.Name)
|
||||
// and the right profiles
|
||||
@@ -1754,7 +1754,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
|
||||
require.NotNil(t, h2.TeamID)
|
||||
|
||||
// the team has the right name
|
||||
tm2, err := s.ds.Team(ctx, *h2.TeamID)
|
||||
tm2, err := s.ds.TeamWithExtras(ctx, *h2.TeamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "base - kiosks - workstations", tm2.Name)
|
||||
// and the right profiles
|
||||
@@ -1982,7 +1982,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
|
||||
require.NotEqual(t, tm2.ID, *h3.TeamID)
|
||||
|
||||
// a new team is created
|
||||
tm3, err := s.ds.Team(ctx, *h3.TeamID)
|
||||
tm3, err := s.ds.TeamWithExtras(ctx, *h3.TeamID)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "base - no-nudge - workstations", tm3.Name)
|
||||
// and the right profiles
|
||||
|
||||
@@ -2593,7 +2593,7 @@ func (svc *Service) ListMDMConfigProfiles(ctx context.Context, teamID *uint, opt
|
||||
|
||||
if teamID != nil && *teamID > 0 {
|
||||
// confirm that team exists
|
||||
if _, err := svc.ds.Team(ctx, *teamID); err != nil {
|
||||
if _, err := svc.ds.TeamWithExtras(ctx, *teamID); err != nil {
|
||||
return nil, nil, ctxerr.Wrap(ctx, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ func (svc *Service) EnrollOrbit(ctx context.Context, hostInfo fleet.OrbitHostInf
|
||||
isEndUserAuthRequired := appConfig.MDM.MacOSSetup.EnableEndUserAuthentication
|
||||
// If the secret is for a team, get the team config as well.
|
||||
if secret.TeamID != nil {
|
||||
team, err := svc.ds.Team(ctx, *secret.TeamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, *secret.TeamID)
|
||||
if err != nil {
|
||||
return "", fleet.OrbitError{Message: "failed to get team config: " + err.Error()}
|
||||
}
|
||||
@@ -561,7 +561,7 @@ func (svc *Service) processReleaseDeviceForOldFleetd(ctx context.Context, host *
|
||||
}
|
||||
manualRelease = ac.MDM.MacOSSetup.EnableReleaseDeviceManually.Value
|
||||
} else {
|
||||
tm, err := svc.ds.Team(ctx, *host.TeamID)
|
||||
tm, err := svc.ds.TeamWithExtras(ctx, *host.TeamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "get Team to read enable_release_device_manually")
|
||||
}
|
||||
|
||||
@@ -1159,7 +1159,7 @@ func (svc *Service) SubmitDistributedQueryResults(
|
||||
if host.TeamID != nil {
|
||||
teamID = *host.TeamID
|
||||
}
|
||||
team, err := svc.ds.TeamWithoutExtras(ctx, teamID)
|
||||
team, err := svc.ds.TeamLite(ctx, teamID)
|
||||
if err != nil {
|
||||
logging.WithErr(ctx, err)
|
||||
} else if teamPolicyAutomationsEnabled(team.Config.WebhookSettings, team.Config.Integrations) {
|
||||
@@ -1268,7 +1268,7 @@ func processCalendarPolicies(
|
||||
return nil
|
||||
}
|
||||
|
||||
team, err := ds.Team(ctx, *host.TeamID)
|
||||
team, err := ds.TeamWithExtras(ctx, *host.TeamID)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "load host team")
|
||||
}
|
||||
@@ -2439,7 +2439,7 @@ func (svc *Service) conditionalAccessConfiguredAndEnabledForTeam(ctx context.Con
|
||||
}
|
||||
|
||||
// Host belongs to a team, thus we load the team configuration.
|
||||
team, err := svc.ds.TeamWithoutExtras(ctx, *hostTeamID)
|
||||
team, err := svc.ds.TeamLite(ctx, *hostTeamID)
|
||||
if err != nil {
|
||||
return false, false, ctxerr.Wrap(ctx, err, "failed to load team config")
|
||||
}
|
||||
|
||||
@@ -925,7 +925,7 @@ func (svc *Service) GetQuerySpecs(ctx context.Context, teamID *uint) ([]*fleet.Q
|
||||
func (svc *Service) specFromQuery(ctx context.Context, query *fleet.Query) (*fleet.QuerySpec, error) {
|
||||
var teamName string
|
||||
if query.TeamID != nil {
|
||||
team, err := svc.ds.Team(ctx, *query.TeamID)
|
||||
team, err := svc.ds.TeamWithExtras(ctx, *query.TeamID)
|
||||
if err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err, "get team from id")
|
||||
}
|
||||
|
||||
@@ -244,7 +244,7 @@ func isAllSetupExperienceSoftwareRequired(ctx context.Context, ds fleet.Datastor
|
||||
}
|
||||
requireAllSoftware = ac.MDM.MacOSSetup.RequireAllSoftware
|
||||
} else {
|
||||
team, err := ds.Team(ctx, *teamID)
|
||||
team, err := ds.TeamWithExtras(ctx, *teamID)
|
||||
if err != nil {
|
||||
return false, ctxerr.Wrap(ctx, err, "load team")
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ func (svc *Service) ListTeamPolicies(ctx context.Context, teamID uint, opts flee
|
||||
}
|
||||
|
||||
if teamID > 0 {
|
||||
if _, err := svc.ds.Team(ctx, teamID); err != nil {
|
||||
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
|
||||
return nil, nil, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
|
||||
}
|
||||
}
|
||||
@@ -326,7 +326,7 @@ func (svc *Service) CountTeamPolicies(ctx context.Context, teamID uint, matchQue
|
||||
}
|
||||
|
||||
if teamID > 0 {
|
||||
if _, err := svc.ds.Team(ctx, teamID); err != nil {
|
||||
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
|
||||
return 0, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
|
||||
}
|
||||
}
|
||||
@@ -422,7 +422,7 @@ func (svc Service) DeleteTeamPolicies(ctx context.Context, teamID uint, ids []ui
|
||||
}
|
||||
|
||||
if teamID > 0 {
|
||||
if _, err := svc.ds.Team(ctx, teamID); err != nil {
|
||||
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
|
||||
return nil, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ func triggerTeamHostStatusWebhook(ctx context.Context, ds fleet.Datastore, logge
|
||||
multiErr := &multierror.Error{}
|
||||
for _, teamSummary := range teams {
|
||||
id := teamSummary.ID
|
||||
team, err := ds.Team(ctx, id)
|
||||
team, err := ds.TeamWithExtras(ctx, id)
|
||||
if err != nil {
|
||||
multiErr = multierror.Append(multiErr, ctxerr.Wrap(ctx, err, "getting team"))
|
||||
continue
|
||||
|
||||
@@ -240,7 +240,7 @@ func (a *AppleMDM) runPostDEPEnrollment(ctx context.Context, args appleMDMArgs)
|
||||
func (a *AppleMDM) getTeamConfig(ctx context.Context, team *fleet.Team, teamID uint) (*fleet.Team, error) {
|
||||
if team == nil {
|
||||
var err error
|
||||
team, err = a.Datastore.Team(ctx, teamID)
|
||||
team, err = a.Datastore.TeamWithExtras(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, ctxerr.Wrap(ctx, err, "fetch team to send AccountConfiguration")
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ func TestAppleMDM(t *testing.T) {
|
||||
t.Cleanup(func() { enableAppCfg(false) })
|
||||
} else {
|
||||
enableTm := func(enable bool) {
|
||||
tm, err := ds.Team(ctx, *teamID)
|
||||
tm, err := ds.TeamWithExtras(ctx, *teamID)
|
||||
require.NoError(t, err)
|
||||
tm.Config.MDM.MacOSSetup.EnableReleaseDeviceManually = optjson.SetBool(enable)
|
||||
_, err = ds.SaveTeam(ctx, tm)
|
||||
@@ -553,7 +553,7 @@ func TestAppleMDM(t *testing.T) {
|
||||
|
||||
tm, err := ds.NewTeam(ctx, &fleet.Team{Name: "test"})
|
||||
require.NoError(t, err)
|
||||
tm, err = ds.Team(ctx, tm.ID)
|
||||
tm, err = ds.TeamWithExtras(ctx, tm.ID)
|
||||
require.NoError(t, err)
|
||||
tm.Config.MDM.MacOSSetup.EnableEndUserAuthentication = true
|
||||
_, err = ds.SaveTeam(ctx, tm)
|
||||
|
||||
@@ -161,7 +161,7 @@ func (j *Jira) getClient(ctx context.Context, args jiraArgs) (JiraClient, error)
|
||||
// configuration has changed since it was created.
|
||||
var opts *externalsvc.JiraOptions
|
||||
if useTeamCfg {
|
||||
tm, err := j.Datastore.TeamWithoutExtras(ctx, teamID)
|
||||
tm, err := j.Datastore.TeamLite(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -348,7 +348,7 @@ func (m *MacosSetupAssistant) runUpdateProfile(ctx context.Context, args macosSe
|
||||
func (m *MacosSetupAssistant) getTeamNoTeam(ctx context.Context, tmID *uint) (*fleet.Team, error) {
|
||||
var team *fleet.Team
|
||||
if tmID != nil {
|
||||
tm, err := m.Datastore.Team(ctx, *tmID)
|
||||
tm, err := m.Datastore.TeamWithExtras(ctx, *tmID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ func (z *Zendesk) getClient(ctx context.Context, args zendeskArgs) (ZendeskClien
|
||||
// configuration has changed since it was created.
|
||||
var opts *externalsvc.ZendeskOptions
|
||||
if useTeamCfg {
|
||||
tm, err := z.Datastore.TeamWithoutExtras(ctx, teamID)
|
||||
tm, err := z.Datastore.TeamLite(ctx, teamID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user