From eb547162e98653cd8aafdfd1e6e82ea9569abe52 Mon Sep 17 00:00:00 2001 From: Chao Geng <93526589+chaogeng77977@users.noreply.github.com> Date: Tue, 7 Jun 2022 16:42:09 +0800 Subject: [PATCH] fix(image) add validation of image name in build image page [EE-3010] (#6988) * EE-3010 add validation of image name --- .../views/images/build/buildImageController.js | 16 +++++++++++++--- app/docker/views/images/build/buildimage.html | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/docker/views/images/build/buildImageController.js b/app/docker/views/images/build/buildImageController.js index 1c3afec45..65c20ab1e 100644 --- a/app/docker/views/images/build/buildImageController.js +++ b/app/docker/views/images/build/buildImageController.js @@ -27,6 +27,13 @@ function BuildImageController($scope, $async, $window, ModalService, BuildServic $scope.state.isEditorDirty = false; }); + $scope.checkName = function (name) { + const parts = name.split('/'); + const repository = parts[parts.length - 1]; + const repositoryRegExp = RegExp('^[a-z0-9-_]{2,255}(:[A-Za-z0-9-_.]{1,128})?$'); + return repositoryRegExp.test(repository); + }; + $scope.addImageName = function () { $scope.formValues.ImageNames.push({ Name: '' }); }; @@ -92,13 +99,16 @@ function BuildImageController($scope, $async, $window, ModalService, BuildServic } $scope.validImageNames = function () { + if ($scope.formValues.ImageNames.length == 0) { + return false; + } for (var i = 0; i < $scope.formValues.ImageNames.length; i++) { var item = $scope.formValues.ImageNames[i]; - if (item.Name !== '') { - return true; + if (!$scope.checkName(item.Name)) { + return false; } } - return false; + return true; }; $scope.editorUpdate = function (cm) { diff --git a/app/docker/views/images/build/buildimage.html b/app/docker/views/images/build/buildimage.html index d95765584..23fa7615f 100644 --- a/app/docker/views/images/build/buildimage.html +++ b/app/docker/views/images/build/buildimage.html @@ -47,7 +47,7 @@ name