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