From 1eef408ad0cf9baaf5a40898beccfca32df84700 Mon Sep 17 00:00:00 2001 From: liuzx Date: Wed, 15 Jun 2022 11:18:05 +0800 Subject: [PATCH] update --- routers/repo/dataset.go | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/routers/repo/dataset.go b/routers/repo/dataset.go index baf000a5b..4c1baf740 100755 --- a/routers/repo/dataset.go +++ b/routers/repo/dataset.go @@ -469,6 +469,7 @@ func MyFavoriteDataset(ctx *context.Context) { return } for _, datasetStar := range datasetStars { + DatasetIsCollaborator := DatasetIsCollaborator(ctx, datasetStar.DatasetID) dataset, err := models.GetDatasetByID(datasetStar.DatasetID) if err != nil { return @@ -477,9 +478,7 @@ func MyFavoriteDataset(ctx *context.Context) { if err != nil { return } - isCollaborator, _ := repo.IsCollaborator(ctx.User.ID) - - if repo.OwnerID == ctx.User.ID || isCollaborator || repo.Owner.IsUserPartOfOrg(ctx.User.ID) { + if repo.OwnerID == ctx.User.ID || DatasetIsCollaborator { IsColDatasetIDs = append(IsColDatasetIDs, datasetStar.DatasetID) } else { NotColDatasetIDs = append(NotColDatasetIDs, datasetStar.DatasetID) @@ -611,3 +610,30 @@ func GetDatasetStatus(ctx *context.Context) { "AttachmentStatus": fmt.Sprint(attachment.DecompressState), }) } +func DatasetIsCollaborator(ctx *context.Context, DatasetID int64) bool { + dataset, err := models.GetDatasetByID(DatasetID) + if err != nil { + log.Info("query dataset error") + } else { + repo, err := models.GetRepositoryByID(dataset.RepoID) + if err != nil { + log.Info("query repo error.") + } else { + repo.GetOwner() + if ctx.User != nil { + if repo.Owner.IsOrganization() { + if repo.Owner.IsUserPartOfOrg(ctx.User.ID) { + log.Info("org user may visit the attach.") + return true + } + } + isCollaborator, _ := repo.IsCollaborator(ctx.User.ID) + if isCollaborator { + log.Info("Collaborator user may visit the attach.") + return true + } + } + } + } + return false +}