Revert "core/grpc: add IterateAll method" (#5234)

Revert "core/grpc: add IterateAll method (#5227)"

This reverts commit 3961098681.
This commit is contained in:
Caleb Doxsey 2024-08-23 10:35:46 -06:00 committed by GitHub
parent 99d7a73cef
commit 98cea10421
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 198 deletions

View file

@ -8,32 +8,43 @@ import (
"github.com/pomerium/pomerium/internal/sets"
"github.com/pomerium/pomerium/pkg/grpc/databroker"
"github.com/pomerium/pomerium/pkg/grpc/session"
"github.com/pomerium/pomerium/pkg/protoutil"
)
var sessionTypeURL = protoutil.GetTypeURL(new(session.Session))
// CurrentUsers returns a list of users active within the current UTC day
func CurrentUsers(
ctx context.Context,
client databroker.DataBrokerServiceClient,
) ([]string, error) {
records, _, _, err := databroker.InitialSync(ctx, client, &databroker.SyncLatestRequest{
Type: sessionTypeURL,
})
if err != nil {
return nil, fmt.Errorf("fetching sessions: %w", err)
}
users := sets.NewHash[string]()
utcNow := time.Now().UTC()
threshold := time.Date(utcNow.Year(), utcNow.Month(), utcNow.Day(), 0, 0, 0, 0, time.UTC)
for s, err := range databroker.IterateAll[session.Session](ctx, client) {
for _, record := range records {
var s session.Session
err := record.GetData().UnmarshalTo(&s)
if err != nil {
return nil, fmt.Errorf("error fetching sessions: %w", err)
return nil, fmt.Errorf("unmarshaling session: %w", err)
}
if s.Object.GetUserId() == "" { // session creation is in progress
if s.UserId == "" { // session creation is in progress
continue
}
if s.Object.GetAccessedAt() == nil {
if s.AccessedAt == nil {
continue
}
if s.Object.GetAccessedAt().AsTime().Before(threshold) {
if s.AccessedAt.AsTime().Before(threshold) {
continue
}
users.Add(s.Object.GetUserId())
users.Add(s.UserId)
}
return users.Items(), nil