From 62344aaab6d00763667f2dab3a18fc5746c48efb Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Thu, 28 Mar 2024 15:08:23 +0800 Subject: [PATCH 1/2] #5217 --- routers/repo/ai_model_manage.go | 24 ++++++++++++++++++++++++ routers/repo/ai_model_square.go | 1 + 2 files changed, 25 insertions(+) diff --git a/routers/repo/ai_model_manage.go b/routers/repo/ai_model_manage.go index 7eff5d1fcc..a1514f2d62 100644 --- a/routers/repo/ai_model_manage.go +++ b/routers/repo/ai_model_manage.go @@ -1193,6 +1193,30 @@ func isCanDownload(ctx *context.Context, task *models.AiModelManage) bool { return false } +func isModelCanDownload(user *models.User, repo *models.Repository, task *models.AiModelManage) bool { + if user == nil { + return false + } + isCollaborator, err := repo.IsCollaborator(user.ID) + if err != nil { + log.Info("query error.") + } + isTeamMember, err := repo.IsInRepoTeam(user.ID) + if err != nil { + log.Info("query IsInRepoTeam error." + err.Error()) + } + if user.IsAdmin || user.ID == task.UserId || isCollaborator || isTeamMember { + return true + } + if repo.OwnerID == user.ID { + return true + } + if !task.IsPrivate { + return true + } + return false +} + func isQueryPrivateModel(ctx *context.Context) bool { if ctx.User == nil { return false diff --git a/routers/repo/ai_model_square.go b/routers/repo/ai_model_square.go index 5e9f4909b9..5fc2ced6a4 100644 --- a/routers/repo/ai_model_square.go +++ b/routers/repo/ai_model_square.go @@ -189,6 +189,7 @@ func ModelSquareData(ctx *context.Context) { model.RepoOwnerName = repo.OwnerName model.RepoDisplayName = repo.DisplayName() } + model.IsCanDownload = isModelCanDownload(ctx.User, repo, model) } if ctx.User != nil && modelCollect != nil { value := modelCollect[model.ID] -- 2.34.1 From 483edf759a2fb27524fc628a2a85ad125da269bb Mon Sep 17 00:00:00 2001 From: chenshihai Date: Thu, 28 Mar 2024 16:23:28 +0800 Subject: [PATCH 2/2] #5217 --- web_src/vuepages/components/cloudbrain/ModelSelectV2.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_src/vuepages/components/cloudbrain/ModelSelectV2.vue b/web_src/vuepages/components/cloudbrain/ModelSelectV2.vue index f820d81c4d..4ed14e7882 100644 --- a/web_src/vuepages/components/cloudbrain/ModelSelectV2.vue +++ b/web_src/vuepages/components/cloudbrain/ModelSelectV2.vue @@ -210,7 +210,7 @@ export default { dataI._modelName = dataI.name; dataI._modelVersion = dataI.version; dataI._preTrainModelUrl = dataI.path; - if (this.useExceedSize && dataI.size > this.exceedSize && this.exceedSize) { + if (this.useExceedSize && dataI.size > this.exceedSize && this.exceedSize || !dataI.isCanDownload) { dataI.disabled = true; } _children.forEach(item => { -- 2.34.1