diff --git a/routers/repo/dataset.go b/routers/repo/dataset.go index 65ae5abb2..b3fbbe1dd 100755 --- a/routers/repo/dataset.go +++ b/routers/repo/dataset.go @@ -110,8 +110,17 @@ func DatasetIndex(ctx *context.Context) { repo := ctx.Repo.Repository dataset, err := models.GetDatasetByRepo(repo) - ctx.Data["CanRead"]=ctx.Repo.CanRead(models.UnitTypeDatasets) - ctx.Data["CanWrite"]=ctx.Repo.CanWrite(models.UnitTypeDatasets) + canRead := false + if ctx.IsSigned { + isCollaborator, err := repo.IsCollaborator(ctx.User.ID) + if err != nil { + canRead = false + } else if ctx.User.IsAdmin || isCollaborator { + canRead = true + } + } + ctx.Data["CanRead"] = canRead + ctx.Data["CanWrite"] = ctx.Repo.CanWrite(models.UnitTypeDatasets) if err != nil { log.Warn("query dataset, not found.") ctx.HTML(200, tplIndex)