Browse Source

解决#2647

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.8.2^2
zouap 3 years ago
parent
commit
ff249ec337
2 changed files with 23 additions and 7 deletions
  1. +17
    -7
      models/dataset.go
  2. +6
    -0
      routers/repo/setting.go

+ 17
- 7
models/dataset.go View File

@@ -88,7 +88,7 @@ func (datasets DatasetList) loadAttributes(e Engine) error {
if err := e. if err := e.
Where("id > 0"). Where("id > 0").
In("id", keysInt64(set)). 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 { Find(&repos); err != nil {
return fmt.Errorf("find repos: %v", err) return fmt.Errorf("find repos: %v", err)
} }
@@ -121,12 +121,12 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions)
if attachment.DatasetID == datasets[i].ID { if attachment.DatasetID == datasets[i].ID {
if opts.StarByMe { if opts.StarByMe {


permission,ok := permissionMap[datasets[i].ID];
permission, ok := permissionMap[datasets[i].ID]
if !ok { if !ok {


permission = false permission = false
datasets[i].Repo.GetOwner() 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) { if datasets[i].Repo.Owner.IsUserPartOfOrg(opts.User.ID) {
log.Info("user is member of org.") log.Info("user is member of org.")
permission = true 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) datasets[i].Attachments = append(datasets[i].Attachments, attachment)
} else if !attachment.IsPrivate { } else if !attachment.IsPrivate {
datasets[i].Attachments = append(datasets[i].Attachments, attachment) datasets[i].Attachments = append(datasets[i].Attachments, attachment)
@@ -159,8 +159,8 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions)
} }


for i := range datasets { 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 datasets[i].Repo.Owner = nil
} }
@@ -585,3 +585,13 @@ func GetTeamDatasetIdsByUserID(userID int64) []int64 {
Cols("dataset.id").Find(&datasets) Cols("dataset.id").Find(&datasets)
return 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
}

+ 6
- 0
routers/repo/setting.go View File

@@ -464,6 +464,12 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
} }
return 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) log.Trace("Repository transferred: %s/%s -> %s", ctx.Repo.Owner.Name, repo.Name, newOwner)
ctx.Flash.Success(ctx.Tr("repo.settings.transfer_succeed")) ctx.Flash.Success(ctx.Tr("repo.settings.transfer_succeed"))


Loading…
Cancel
Save