|
|
@ -366,12 +366,7 @@ func AddTeamMember(ctx context.Context, team *organization.Team, userID int64) e |
|
|
|
return err |
|
|
|
return err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ctx, committer, err := db.TxContext(ctx) |
|
|
|
err = db.WithTx(ctx, func(ctx context.Context) error { |
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
defer committer.Close() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// check in transaction
|
|
|
|
// check in transaction
|
|
|
|
isAlreadyMember, err = organization.IsTeamMember(ctx, team.OrgID, team.ID, userID) |
|
|
|
isAlreadyMember, err = organization.IsTeamMember(ctx, team.OrgID, team.ID, userID) |
|
|
|
if err != nil || isAlreadyMember { |
|
|
|
if err != nil || isAlreadyMember { |
|
|
@ -422,13 +417,18 @@ func AddTeamMember(ctx context.Context, team *organization.Team, userID int64) e |
|
|
|
accesses = accesses[:0] |
|
|
|
accesses = accesses[:0] |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
|
|
return err |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// this behaviour may spend much time so run it in a goroutine
|
|
|
|
// this behaviour may spend much time so run it in a goroutine
|
|
|
|
// FIXME: Update watch repos batchly
|
|
|
|
// FIXME: Update watch repos batchly
|
|
|
|
if setting.Service.AutoWatchNewRepos { |
|
|
|
if setting.Service.AutoWatchNewRepos { |
|
|
|
// Get team and its repositories.
|
|
|
|
// Get team and its repositories.
|
|
|
|
if err := team.LoadRepositories(ctx); err != nil { |
|
|
|
if err := team.LoadRepositories(ctx); err != nil { |
|
|
|
log.Error("getRepositories failed: %v", err) |
|
|
|
log.Error("team.LoadRepositories failed: %v", err) |
|
|
|
} |
|
|
|
} |
|
|
|
// FIXME: in the goroutine, it can't access the "ctx", it could only use db.DefaultContext at the moment
|
|
|
|
// FIXME: in the goroutine, it can't access the "ctx", it could only use db.DefaultContext at the moment
|
|
|
|
go func(repos []*repo_model.Repository) { |
|
|
|
go func(repos []*repo_model.Repository) { |
|
|
@ -440,7 +440,7 @@ func AddTeamMember(ctx context.Context, team *organization.Team, userID int64) e |
|
|
|
}(team.Repos) |
|
|
|
}(team.Repos) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return committer.Commit() |
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func removeTeamMember(ctx context.Context, team *organization.Team, userID int64) error { |
|
|
|
func removeTeamMember(ctx context.Context, team *organization.Team, userID int64) error { |
|
|
|