From 2b55422cd71b0b325f054646de5cebf39b72b502 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Tue, 22 Mar 2022 17:29:07 +0800 Subject: Fix the bug: deploy key with write access can not push (#19010) Use DeployKeyID to replace the IsDeployKey, then CanWriteCode uses the DeployKeyID to check the write permission. --- modules/private/hook.go | 2 +- modules/private/serv.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'modules') diff --git a/modules/private/hook.go b/modules/private/hook.go index fd864b1e6b..559019344e 100644 --- a/modules/private/hook.go +++ b/modules/private/hook.go @@ -56,7 +56,7 @@ type HookOptions struct { GitQuarantinePath string GitPushOptions GitPushOptions PullRequestID int64 - IsDeployKey bool + DeployKeyID int64 // if the pusher is a DeployKey, then UserID is the repo's org user. IsWiki bool } diff --git a/modules/private/serv.go b/modules/private/serv.go index e1204c23a7..2e1367e4c4 100644 --- a/modules/private/serv.go +++ b/modules/private/serv.go @@ -46,9 +46,9 @@ func ServNoCommand(ctx context.Context, keyID int64) (*asymkey_model.PublicKey, // ServCommandResults are the results of a call to the private route serv type ServCommandResults struct { IsWiki bool - IsDeployKey bool - KeyID int64 - KeyName string + DeployKeyID int64 + KeyID int64 // public key + KeyName string // this field is ambiguous, it can be the name of DeployKey, or the name of the PublicKey UserName string UserEmail string UserID int64 -- cgit v1.2.3