1
Fork 0

Merge pull request 'migrations: Map non-existant external users to Ghost' (#3935) from algernon/forgejo:who-let-the-nils-out into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3935
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
This commit is contained in:
Earl Warren 2024-05-28 16:42:31 +00:00
commit ae99aa0bbe
3 changed files with 8 additions and 7 deletions

View file

@ -996,7 +996,7 @@ func (g *GiteaLocalUploader) remapUser(source user_model.ExternalUserMigrated, t
if userID > 0 {
return target.RemapExternalUser("", 0, userID)
}
return target.RemapExternalUser(source.GetExternalName(), source.GetExternalID(), g.doer.ID)
return target.RemapExternalUser(source.GetExternalName(), source.GetExternalID(), user_model.GhostUserID)
}
func (g *GiteaLocalUploader) remapLocalUser(source user_model.ExternalUserMigrated) (int64, error) {

View file

@ -145,24 +145,24 @@ func TestGiteaUploadRemapLocalUser(t *testing.T) {
//
// The externalID does not match any existing user, everything
// belongs to the doer
// belongs to the Ghost user
//
target := repo_model.Release{}
uploader.userMap = make(map[int64]int64)
err := uploader.remapUser(&source, &target)
assert.NoError(t, err)
assert.EqualValues(t, doer.ID, target.GetUserID())
assert.EqualValues(t, user_model.GhostUserID, target.GetUserID())
//
// The externalID matches a known user but the name does not match,
// everything belongs to the doer
// everything belongs to the Ghost user
//
source.PublisherID = user.ID
target = repo_model.Release{}
uploader.userMap = make(map[int64]int64)
err = uploader.remapUser(&source, &target)
assert.NoError(t, err)
assert.EqualValues(t, doer.ID, target.GetUserID())
assert.EqualValues(t, user_model.GhostUserID, target.GetUserID())
//
// The externalID and externalName match an existing user, everything
@ -195,13 +195,13 @@ func TestGiteaUploadRemapExternalUser(t *testing.T) {
//
// When there is no user linked to the external ID, the migrated data is authored
// by the doer
// by the Ghost user
//
uploader.userMap = make(map[int64]int64)
target := repo_model.Release{}
err := uploader.remapUser(&source, &target)
assert.NoError(t, err)
assert.EqualValues(t, doer.ID, target.GetUserID())
assert.EqualValues(t, user_model.GhostUserID, target.GetUserID())
//
// Link the external ID to an existing user