Check certificate file extension

Checking the file extension type of uploaded certificates to redfish.
Sends the file only if the file type is correct, otherwise shows error.

Signed-off-by: Damian Celico <damianx.celico@intel.com>
Change-Id: Idfc790bc8967333aed66c5c128334af4231dbea3
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index e43167c..3fd2ded 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -866,7 +866,8 @@
       "certificateExpiredMessage": "%{certificate} has expired. Consider replacing it with a new certificate.",
       "certificateExpiringMessage": "%{certificate} is expiring soon. Consider replacing it with a new certificate.",
       "certificatesExpiredMessage": "Some certificates have expired. Consider replacing them with new certificates.",
-      "certificatesExpiringMessage": "Some certificates are expiring soon. Consider replacing them with new certificates."
+      "certificatesExpiringMessage": "Some certificates are expiring soon. Consider replacing them with new certificates.",
+      "incorrectCertificateFileType": "File is not a correct certificate type"
     },
     "modal": {
       "alternateName": "Alternate name",
diff --git a/src/views/SecurityAndAccess/Certificates/Certificates.vue b/src/views/SecurityAndAccess/Certificates/Certificates.vue
index 0113b80..677d19d 100644
--- a/src/views/SecurityAndAccess/Certificates/Certificates.vue
+++ b/src/views/SecurityAndAccess/Certificates/Certificates.vue
@@ -29,6 +29,12 @@
             }}
           </template>
         </alert>
+        <!-- Wrong file type banner -->
+        <alert :show="fileTypeCorrect === false" variant="danger">
+          <template v-if="fileTypeCorrect === false">
+            {{ $t('pageCertificates.alert.incorrectCertificateFileType') }}
+          </template>
+        </alert>
       </b-col>
     </b-row>
     <b-row>
@@ -136,6 +142,7 @@
     return {
       isBusy: true,
       modalCertificate: null,
+      fileTypeCorrect: undefined,
       fields: [
         {
           key: 'certificate',
@@ -258,19 +265,24 @@
     onModalOk({ addNew, file, type, location }) {
       if (addNew) {
         // Upload a new certificate
-        this.addNewCertificate(file, type);
+        this.fileTypeCorrect = this.getIsFileTypeCorrect(file);
+        if (this.fileTypeCorrect) {
+          this.addNewCertificate(file, type);
+        }
       } else {
         // Replace an existing certificate
         this.replaceCertificate(file, type, location);
       }
     },
     addNewCertificate(file, type) {
-      this.startLoader();
-      this.$store
-        .dispatch('certificates/addNewCertificate', { file, type })
-        .then((success) => this.successToast(success))
-        .catch(({ message }) => this.errorToast(message))
-        .finally(() => this.endLoader());
+      if (this.fileTypeCorrect === true) {
+        this.startLoader();
+        this.$store
+          .dispatch('certificates/addNewCertificate', { file, type })
+          .then((success) => this.successToast(success))
+          .catch(({ message }) => this.errorToast(message))
+          .finally(() => this.endLoader());
+      }
     },
     replaceCertificate(file, type, location) {
       this.startLoader();
@@ -317,6 +329,10 @@
         return 'warning';
       }
     },
+    getIsFileTypeCorrect(file) {
+      const fileTypeExtension = file.name.split('.').pop();
+      return fileTypeExtension === 'pem';
+    },
   },
 };
 </script>