@@ -69,30 +69,27 @@ func signingModeFromStrings(modeStrings []string) []signingMode {
6969 return returnable
7070}
7171
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 ,
7575 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+ }
8378
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 ,
8682 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+ }
9485
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 )
9693}
9794
9895// ErrWontSign explains the first reason why a commit would not be signed
@@ -196,7 +193,7 @@ Loop:
196193 case always :
197194 break Loop
198195 case pubkey :
199- hasKeys , err := userHasPubkeys (ctx , u )
196+ hasKeys , err := userHasPubkeys (ctx , u . ID )
200197 if err != nil {
201198 return false , nil , nil , err
202199 }
@@ -233,7 +230,7 @@ Loop:
233230 case always :
234231 break Loop
235232 case pubkey :
236- hasKeys , err := userHasPubkeys (ctx , u )
233+ hasKeys , err := userHasPubkeys (ctx , u . ID )
237234 if err != nil {
238235 return false , nil , nil , err
239236 }
@@ -286,7 +283,7 @@ Loop:
286283 case always :
287284 break Loop
288285 case pubkey :
289- hasKeys , err := userHasPubkeys (ctx , u )
286+ hasKeys , err := userHasPubkeys (ctx , u . ID )
290287 if err != nil {
291288 return false , nil , nil , err
292289 }
@@ -354,7 +351,7 @@ Loop:
354351 case always :
355352 break Loop
356353 case pubkey :
357- hasKeys , err := userHasPubkeys (ctx , u )
354+ hasKeys , err := userHasPubkeys (ctx , u . ID )
358355 if err != nil {
359356 return false , nil , nil , err
360357 }
0 commit comments