dashboard: improve display of device credentials, allow deletion (#2829)

* dashboard: improve display of device credentials, allow deletion

* fix test
This commit is contained in:
Caleb Doxsey 2021-12-20 12:19:54 -07:00 committed by GitHub
parent c064bc8e0e
commit 838c9e3a3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 225 additions and 36 deletions

View file

@ -5,11 +5,65 @@ import (
"context"
"fmt"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/pomerium/pomerium/pkg/encoding/base58"
"github.com/pomerium/pomerium/pkg/grpc/databroker"
"github.com/pomerium/pomerium/pkg/protoutil"
)
// DeleteCredential deletes a credential from the databroker.
func DeleteCredential(
ctx context.Context,
client databroker.DataBrokerServiceClient,
credentialID string,
) (*Credential, error) {
credential, err := GetCredential(ctx, client, credentialID)
if status.Code(err) == codes.NotFound {
return nil, nil
} else if err != nil {
return nil, err
}
any := protoutil.NewAny(credential)
_, err = client.Put(ctx, &databroker.PutRequest{
Record: &databroker.Record{
Type: any.GetTypeUrl(),
Id: credentialID,
Data: any,
DeletedAt: timestamppb.Now(),
},
})
return credential, err
}
// DeleteEnrollment deletes an enrollment from the databroker.
func DeleteEnrollment(
ctx context.Context,
client databroker.DataBrokerServiceClient,
enrollmentID string,
) (*Enrollment, error) {
enrollment, err := GetEnrollment(ctx, client, enrollmentID)
if status.Code(err) == codes.NotFound {
return nil, nil
} else if err != nil {
return nil, err
}
any := protoutil.NewAny(enrollment)
_, err = client.Put(ctx, &databroker.PutRequest{
Record: &databroker.Record{
Type: any.GetTypeUrl(),
Id: enrollmentID,
Data: any,
DeletedAt: timestamppb.Now(),
},
})
return enrollment, err
}
// GetCredential gets a credential from the databroker.
func GetCredential(
ctx context.Context,