@@ -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