Browse Source

Merge pull request '私有数据集文件显示问题' (#2433) from multi-dataset into V20220630

Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/2433
Reviewed-by: lewis <747342561@qq.com>
tags/v1.22.6.2^2
lewis 3 years ago
parent
commit
0ce06340a2
1 changed files with 22 additions and 9 deletions
  1. +22
    -9
      models/dataset.go

+ 22
- 9
models/dataset.go View File

@@ -113,24 +113,37 @@ func (datasets DatasetList) loadAttachmentAttributes(opts *SearchDatasetOptions)
return fmt.Errorf("GetAttachmentsByDatasetIds failed error: %v", err) 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 _, attachment := range attachments {


for i := range datasets { for i := range datasets {
if attachment.DatasetID == datasets[i].ID { if attachment.DatasetID == datasets[i].ID {
if opts.StarByMe { 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)

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.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) 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)


Loading…
Cancel
Save