@@ -69,30 +69,27 @@ func signingModeFromStrings(modeStrings []string) []signingMode {
69
69
return returnable
70
70
}
71
71
72
- func userHasPubkeys (ctx context.Context , u * user_model. User ) (bool , error ) {
73
- gpgKeys , err := db .Find [asymkey_model.GPGKey ](ctx , asymkey_model.FindGPGKeyOptions {
74
- OwnerID : u . ID ,
72
+ func userHasPubkeysGPG (ctx context.Context , userID int64 ) (bool , error ) {
73
+ return db .Exist [asymkey_model.GPGKey ](ctx , asymkey_model.FindGPGKeyOptions {
74
+ OwnerID : userID ,
75
75
IncludeSubKeys : true ,
76
- })
77
- if err != nil {
78
- return false , err
79
- }
80
- if len (gpgKeys ) > 0 {
81
- return true , nil
82
- }
76
+ }.ToConds ())
77
+ }
83
78
84
- sshKeys , err := db .Find [asymkey_model.PublicKey ](ctx , asymkey_model.FindPublicKeyOptions {
85
- OwnerID : u .ID ,
79
+ func userHasPubkeysSSH (ctx context.Context , userID int64 ) (bool , error ) {
80
+ return db .Exist [asymkey_model.PublicKey ](ctx , asymkey_model.FindPublicKeyOptions {
81
+ OwnerID : userID ,
86
82
NotKeytype : asymkey_model .KeyTypePrincipal ,
87
- })
88
- if err != nil {
89
- return false , err
90
- }
91
- if len (sshKeys ) > 0 {
92
- return true , nil
93
- }
83
+ }.ToConds ())
84
+ }
94
85
95
- return false , nil
86
+ // userHasPubkeys checks if a user has any public keys (GPG or SSH)
87
+ func userHasPubkeys (ctx context.Context , userID int64 ) (bool , error ) {
88
+ has , err := userHasPubkeysGPG (ctx , userID )
89
+ if has || err != nil {
90
+ return has , err
91
+ }
92
+ return userHasPubkeysSSH (ctx , userID )
96
93
}
97
94
98
95
// ErrWontSign explains the first reason why a commit would not be signed
@@ -196,7 +193,7 @@ Loop:
196
193
case always :
197
194
break Loop
198
195
case pubkey :
199
- hasKeys , err := userHasPubkeys (ctx , u )
196
+ hasKeys , err := userHasPubkeys (ctx , u . ID )
200
197
if err != nil {
201
198
return false , nil , nil , err
202
199
}
@@ -233,7 +230,7 @@ Loop:
233
230
case always :
234
231
break Loop
235
232
case pubkey :
236
- hasKeys , err := userHasPubkeys (ctx , u )
233
+ hasKeys , err := userHasPubkeys (ctx , u . ID )
237
234
if err != nil {
238
235
return false , nil , nil , err
239
236
}
@@ -286,7 +283,7 @@ Loop:
286
283
case always :
287
284
break Loop
288
285
case pubkey :
289
- hasKeys , err := userHasPubkeys (ctx , u )
286
+ hasKeys , err := userHasPubkeys (ctx , u . ID )
290
287
if err != nil {
291
288
return false , nil , nil , err
292
289
}
@@ -354,7 +351,7 @@ Loop:
354
351
case always :
355
352
break Loop
356
353
case pubkey :
357
- hasKeys , err := userHasPubkeys (ctx , u )
354
+ hasKeys , err := userHasPubkeys (ctx , u . ID )
358
355
if err != nil {
359
356
return false , nil , nil , err
360
357
}
0 commit comments