From 5642bc341cd6ef8797f023f1fdf2ebd98ff73535 Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 4 Jul 2022 17:11:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/dataset.go | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/models/dataset.go b/models/dataset.go index fbd605120..604fbe376 100755 --- a/models/dataset.go +++ b/models/dataset.go @@ -113,24 +113,36 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) return fmt.Errorf("GetAttachmentsByDatasetIds failed error: %v", err) } - permissionMap := make(map[int64]*Permission, len(datasets)) + permissionMap := make(map[int64]bool, len(datasets)) for _, attachment := range attachments { for i := range datasets { if attachment.DatasetID == datasets[i].ID { if opts.StarByMe { - var permission *Permission - if permission = permissionMap[datasets[i].ID]; permission == nil { - permissionInstance, err := GetUserRepoPermission(datasets[i].Repo, opts.User) - if err != nil { - return fmt.Errorf("GetPermission failed error: %v", err) + var permission bool + if _,ok := permissionMap[datasets[i].ID]; !ok { + + permission = false + datasets[i].Repo.GetOwner() + if datasets[i].Repo.Owner.IsOrganization() { + if datasets[i].Repo.Owner.IsUserPartOfOrg(opts.User.ID) { + log.Info("user is member of org.") + permission = true + } } - permission = &permissionInstance - permissionMap[datasets[i].ID]=&permissionInstance + if !permission { + isCollaborator, _ := datasets[i].Repo.IsCollaborator(opts.User.ID) + if isCollaborator { + log.Info("Collaborator user may visit the attach.") + permission = true + } + } + + permissionMap[datasets[i].ID]=permission } - if permission.HasAccess() { + if permission{ datasets[i].Attachments = append(datasets[i].Attachments, attachment) } else if !attachment.IsPrivate { datasets[i].Attachments = append(datasets[i].Attachments, attachment) From cca4cccd07ae31c518a08dc418d4cf3df3bb2a1c Mon Sep 17 00:00:00 2001 From: ychao_1983 Date: Mon, 4 Jul 2022 17:15:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/dataset.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/models/dataset.go b/models/dataset.go index 604fbe376..7f049f068 100755 --- a/models/dataset.go +++ b/models/dataset.go @@ -120,8 +120,9 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions) for i := range datasets { if attachment.DatasetID == datasets[i].ID { if opts.StarByMe { - var permission bool - if _,ok := permissionMap[datasets[i].ID]; !ok { + + permission,ok := permissionMap[datasets[i].ID]; + if !ok { permission = false datasets[i].Repo.GetOwner()