diff --git a/models/dataset.go b/models/dataset.go index 7f049f068..a0f6ba2aa 100755 --- a/models/dataset.go +++ b/models/dataset.go @@ -88,7 +88,7 @@ func (datasets DatasetList) loadAttributes(e Engine) error { if err := e. Where("id > 0"). In("id", keysInt64(set)). - Cols("id", "owner_id", "owner_name", "lower_name", "name", "description", "alias", "lower_alias","is_private"). + Cols("id", "owner_id", "owner_name", "lower_name", "name", "description", "alias", "lower_alias", "is_private"). Find(&repos); err != nil { return fmt.Errorf("find repos: %v", err) } @@ -121,12 +121,12 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) if attachment.DatasetID == datasets[i].ID { if opts.StarByMe { - permission,ok := permissionMap[datasets[i].ID]; + permission, ok := permissionMap[datasets[i].ID] if !ok { permission = false datasets[i].Repo.GetOwner() - if datasets[i].Repo.Owner.IsOrganization() { + if datasets[i].Repo.Owner.IsOrganization() { if datasets[i].Repo.Owner.IsUserPartOfOrg(opts.User.ID) { log.Info("user is member of org.") permission = true @@ -140,10 +140,10 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) } } - permissionMap[datasets[i].ID]=permission + permissionMap[datasets[i].ID] = permission } - if permission{ + if permission { datasets[i].Attachments = append(datasets[i].Attachments, attachment) } else if !attachment.IsPrivate { datasets[i].Attachments = append(datasets[i].Attachments, attachment) @@ -159,8 +159,8 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) } for i := range datasets { - if datasets[i].Attachments==nil{ - datasets[i].Attachments=[]*Attachment{} + if datasets[i].Attachments == nil { + datasets[i].Attachments = []*Attachment{} } datasets[i].Repo.Owner = nil } @@ -585,3 +585,13 @@ func GetTeamDatasetIdsByUserID(userID int64) []int64 { Cols("dataset.id").Find(&datasets) return datasets } + +func UpdateDatasetCreateUser(ID int64, user *User) error { + _, err := x.Where("id = ?", ID).Cols("user_id").Update(&Dataset{ + UserID: user.ID, + }) + if err != nil { + return err + } + return nil +} diff --git a/routers/repo/setting.go b/routers/repo/setting.go index fed89513a..dab98b92d 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -464,6 +464,12 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) { } return } + dataset, err := models.GetDatasetByRepo(repo) + if err == nil { + if dataset != nil { + models.UpdateDatasetCreateUser(dataset.ID, newOwner) + } + } log.Trace("Repository transferred: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newOwner) ctx.Flash.Success(ctx.Tr("repo.settings.transfer_succeed"))