Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Refactor repository transfer #33211

Merged
merged 19 commits into from
Jan 30, 2025
Merged

Conversation

lunny
Copy link
Member

@lunny lunny commented Jan 11, 2025

  • Both have RejectTransfer and CancelTransfer 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.

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Jan 11, 2025
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jan 11, 2025
@github-actions github-actions bot added modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code labels Jan 11, 2025
@lunny lunny added type/refactoring Existing code has been cleaned up. There should be no new functionality. and removed modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code labels Jan 11, 2025
@github-actions github-actions bot added modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code labels Jan 11, 2025
@lunny lunny force-pushed the lunny/refactor_transfer branch from d42ace7 to 45ffedd Compare January 13, 2025 04:16
@github-actions github-actions bot added the modifies/templates This PR modifies the template files label Jan 13, 2025
@lunny lunny changed the title refactor transfer related code Refactor repository transfer Jan 13, 2025
@pull-request-size pull-request-size bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jan 13, 2025
@lunny lunny marked this pull request as ready for review January 13, 2025 21:11
@lunny lunny added this to the 1.24.0 milestone Jan 13, 2025
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Jan 20, 2025
@yp05327
Copy link
Contributor

yp05327 commented Jan 22, 2025

It seems that the transfer check don't check the user repo create limitation?
Then I can use another account to create the repo and transfer it to pass the check?

@lunny
Copy link
Member Author

lunny commented Jan 22, 2025

It seems that the transfer check don't check the user repo create limitation? Then I can use another account to create the repo and transfer it to pass the check?

You are right. This is a bug in the original logic. I will send another PR to fix it.

Comment on lines +227 to +230
if _, err := user_model.GetUserByID(ctx, newOwner.ID); err != nil {
return err
}

Copy link
Contributor

@yp05327 yp05327 Jan 22, 2025

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.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because this test introduced a non-exist user. So we need to check it here.
image

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jan 30, 2025
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Jan 30, 2025
@lunny lunny enabled auto-merge (squash) January 30, 2025 05:15
@lunny lunny merged commit f88dbf8 into go-gitea:main Jan 30, 2025
26 checks passed
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Jan 30, 2025
@lunny lunny deleted the lunny/refactor_transfer branch January 30, 2025 05:43
zjjhot added a commit to zjjhot/gitea that referenced this pull request Feb 3, 2025
* giteaofficial/main: (53 commits)
  [skip ci] Updated licenses and gitignores
  Correct bot label `vertical-align` (go-gitea#33477)
  chore: fix some trivial problems and TODOs (go-gitea#33473)
  Worktime tracking for the organization level (go-gitea#19808)
  Skip deletion error for action artifacts (go-gitea#33476)
  Update .changelog file to add performance label group (go-gitea#33472)
  actions view: move loading of task attributes etc... into own func (go-gitea#31494)
  [skip ci] Updated translations via Crowdin
  Update feishu icon (go-gitea#33470)
  Inclusion of rename organization api (go-gitea#33303)
  [skip ci] Updated translations via Crowdin
  Hide/disable unusable UI elements when a repository is archived (go-gitea#33459)
  Fix SSH LFS memory usage (go-gitea#33455)
  Revert empty lfs ref name (go-gitea#33454)
  Update `@github/text-expander-element`, adapt type imports (go-gitea#33449)
  Support choose email when creating a commit via web UI (more) (go-gitea#33445)
  Fix issue sidebar dropdown keyboard support (go-gitea#33447)
  Fix "redirect link" handling (go-gitea#33440)
  Refactor repository transfer (go-gitea#33211)
  Enable two more strict options in tsconfig (go-gitea#33438)
  ...
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/api This PR adds API routes or modifies them modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. type/refactoring Existing code has been cleaned up. There should be no new functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants