-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor repository transfer #33211
base: main
Are you sure you want to change the base?
Refactor repository transfer #33211
Conversation
d42ace7
to
45ffedd
Compare
It seems that the transfer check don't check the user repo create limitation? |
You are right. This is a bug in the original logic. I will send another PR to fix it. |
if _, err := user_model.GetUserByID(ctx, newOwner.ID); err != nil { | ||
return err | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that this is unnecessary. If you got a User pointer, it should come from a GetUserByxxx
function, so the user exist check is already done before calling this function, and even if newOwner
is nil (although it is impossible), this will cause panic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both have
RejectTransfer
andCancelTransfer
because the permission checks are not the same.CancelTransfer
can be done by the doer or those who have admin permission to access this repository.RejectTransfer
can be done by the receiver user if it's an individual or those who can create repositories if it's an organization.Some tests are wrong, this PR corrects them.