From 45812de33ac341c4ffd4e0530e1aa6c7e4fe8a85 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 30 Aug 2023 09:08:27 +0200 Subject: [PATCH] api: fix fromUser implementation issues --- api/graph/model/secrets.go | 8 ++++---- api/graph/schema.graphqls | 8 ++++---- api/graph/schema.resolvers.go | 15 ++++++++++++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/api/graph/model/secrets.go b/api/graph/model/secrets.go index e2c1aa6..fbe748d 100644 --- a/api/graph/model/secrets.go +++ b/api/graph/model/secrets.go @@ -32,7 +32,7 @@ type RawSecret struct { Path *string Mode *int - FromUserID int + FromUserID *int alias string fields *database.ModelFields @@ -58,7 +58,7 @@ type PGPKey struct { Name *string `json:"name"` PrivateKey []byte `json:"privateKey"` - FromUserID int + FromUserID *int } func (PGPKey) IsSecret() {} @@ -70,7 +70,7 @@ type SSHKey struct { Name *string `json:"name"` PrivateKey []byte `json:"privateKey"` - FromUserID int + FromUserID *int } func (SSHKey) IsSecret() {} @@ -84,7 +84,7 @@ type SecretFile struct { Mode int `json:"mode"` Data []byte `json:"data"` - FromUserID int + FromUserID *int } func (SecretFile) IsSecret() {} diff --git a/api/graph/schema.graphqls b/api/graph/schema.graphqls index ef9e6e2..e64c787 100644 --- a/api/graph/schema.graphqls +++ b/api/graph/schema.graphqls @@ -233,7 +233,7 @@ interface Secret { uuid: String! name: String "Set when this secret was copied from another user account" - from_user: Entity + fromUser: Entity } """ @@ -253,7 +253,7 @@ type SSHKey implements Secret { created: Time! uuid: String! name: String - from_user: Entity + fromUser: Entity privateKey: Binary! @worker } @@ -262,7 +262,7 @@ type PGPKey implements Secret { created: Time! uuid: String! name: String - from_user: Entity + fromUser: Entity privateKey: Binary! @worker } @@ -271,7 +271,7 @@ type SecretFile implements Secret { created: Time! uuid: String! name: String - from_user: Entity + fromUser: Entity path: String! mode: Int! data: Binary! @worker diff --git a/api/graph/schema.resolvers.go b/api/graph/schema.resolvers.go index feb467d..cb3cb57 100644 --- a/api/graph/schema.resolvers.go +++ b/api/graph/schema.resolvers.go @@ -817,7 +817,10 @@ func (r *mutationResolver) DeleteUser(ctx context.Context) (int, error) { // FromUser is the resolver for the from_user field. func (r *pGPKeyResolver) FromUser(ctx context.Context, obj *model.PGPKey) (model.Entity, error) { - return loaders.ForContext(ctx).UsersByID.Load(obj.FromUserID) + if obj.FromUserID == nil { + return nil, nil + } + return loaders.ForContext(ctx).UsersByID.Load(*obj.FromUserID) } // PrivateKey is the resolver for the privateKey field. @@ -1005,7 +1008,10 @@ func (r *queryResolver) Webhook(ctx context.Context) (model.WebhookPayload, erro // FromUser is the resolver for the from_user field. func (r *sSHKeyResolver) FromUser(ctx context.Context, obj *model.SSHKey) (model.Entity, error) { - return loaders.ForContext(ctx).UsersByID.Load(obj.FromUserID) + if obj.FromUserID == nil { + return nil, nil + } + return loaders.ForContext(ctx).UsersByID.Load(*obj.FromUserID) } // PrivateKey is the resolver for the privateKey field. @@ -1017,7 +1023,10 @@ func (r *sSHKeyResolver) PrivateKey(ctx context.Context, obj *model.SSHKey) (str // FromUser is the resolver for the from_user field. func (r *secretFileResolver) FromUser(ctx context.Context, obj *model.SecretFile) (model.Entity, error) { - return loaders.ForContext(ctx).UsersByID.Load(obj.FromUserID) + if obj.FromUserID == nil { + return nil, nil + } + return loaders.ForContext(ctx).UsersByID.Load(*obj.FromUserID) } // Data is the resolver for the data field. -- 2.38.5