diff --git a/backend/app/dto/app.go b/backend/app/dto/app.go index 395060ffa..07c8dd4f0 100644 --- a/backend/app/dto/app.go +++ b/backend/app/dto/app.go @@ -67,7 +67,8 @@ type LocalAppInstallDefine struct { } type ExtraProperties struct { - Tags []Tag `json:"tags"` + Tags []Tag `json:"tags"` + Version string `json:"version"` } type AppProperty struct { diff --git a/backend/app/service/app.go b/backend/app/service/app.go index 6803ed5f3..7aa90e261 100644 --- a/backend/app/service/app.go +++ b/backend/app/service/app.go @@ -668,6 +668,21 @@ func (a AppService) GetAppUpdate() (*response.AppUpdateRes, error) { res.CanUpdate = true return res, err } + if err = getAppFromRepo(fmt.Sprintf("%s/%s/1panel.json.zip", global.CONF.System.AppRepo, global.CONF.System.Mode)); err != nil { + return nil, err + } + listFile := path.Join(constant.ResourceDir, "1panel.json") + content, err := os.ReadFile(listFile) + if err != nil { + return nil, err + } + list := &dto.AppList{} + if err = json.Unmarshal(content, list); err != nil { + return nil, err + } + if list.Extra.Version != "" && !common.CompareVersion(setting.SystemVersion, list.Extra.Version) { + return nil, buserr.New("ErrVersionTooLow") + } return res, nil } diff --git a/backend/i18n/lang/en.yaml b/backend/i18n/lang/en.yaml index 9f7734c64..e3e30a956 100644 --- a/backend/i18n/lang/en.yaml +++ b/backend/i18n/lang/en.yaml @@ -46,6 +46,7 @@ ErrContainerNotFound: '{{ .name }} container does not exist' ErrContainerMsg: '{{ .name }} container is abnormal, please check the log on the container page for details' ErrAppBackup: '{{ .name }} application backup failed err {{.err}}' ErrImagePull: '{{ .name }} image pull failed err {{.err}}' +ErrVersionTooLow: 'The current 1Panel version is too low to update the app store, please upgrade the version' #file ErrFileCanNotRead: "File can not read" diff --git a/backend/i18n/lang/zh-Hant.yaml b/backend/i18n/lang/zh-Hant.yaml index 76741de93..2582ea904 100644 --- a/backend/i18n/lang/zh-Hant.yaml +++ b/backend/i18n/lang/zh-Hant.yaml @@ -46,6 +46,7 @@ ErrContainerNotFound: '{{ .name }} 容器不存在' ErrContainerMsg: '{{ .name }} 容器異常,具體請在容器頁面查看日誌' ErrAppBackup: '{{ .name }} 應用備份失敗 err {{.err}}' ErrImagePull: '{{ .name }} 鏡像拉取失敗 err {{.err}}' +ErrVersionTooLow: '當前 1Panel 版本過低,無法更新應用商店,請升級版本之後操作' #file ErrFileCanNotRead: "此文件不支持預覽" diff --git a/backend/i18n/lang/zh.yaml b/backend/i18n/lang/zh.yaml index 81b43f24a..08fa431d1 100644 --- a/backend/i18n/lang/zh.yaml +++ b/backend/i18n/lang/zh.yaml @@ -46,6 +46,7 @@ ErrContainerNotFound: '{{ .name }} 容器不存在' ErrContainerMsg: '{{ .name }} 容器异常,具体请在容器页面查看日志' ErrAppBackup: '{{ .name }} 应用备份失败 err {{.err}}' ErrImagePull: '镜像拉取失败 {{.err}}' +ErrVersionTooLow: '当前 1Panel 版本过低,无法更新应用商店,请升级版本之后操作' #file ErrFileCanNotRead: "此文件不支持预览"