Security Panel add additional features

Added RTAD under Network interfaces
Added VirtualTPM under Network services
Removed the sub-headings in Policies page

Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
Change-Id: I6290362cecdfe7f8cd7bfde20fcaca88b6bc2c09
diff --git a/src/views/SecurityAndAccess/Policies/Policies.vue b/src/views/SecurityAndAccess/Policies/Policies.vue
index ebcb002..1dc197c 100644
--- a/src/views/SecurityAndAccess/Policies/Policies.vue
+++ b/src/views/SecurityAndAccess/Policies/Policies.vue
@@ -3,65 +3,112 @@
     <page-title />
     <b-row>
       <b-col md="8">
-        <page-section :section-title="$t('pagePolicies.networkServices')">
-          <b-row v-if="!modifySSHPolicyDisabled" class="setting-section">
-            <b-col class="d-flex align-items-center justify-content-between">
-              <dl class="mr-3 w-75">
-                <dt>{{ $t('pagePolicies.ssh') }}</dt>
-                <dd>
-                  {{ $t('pagePolicies.sshDescription') }}
-                </dd>
-              </dl>
-              <b-form-checkbox
-                id="sshSwitch"
-                v-model="sshProtocolState"
-                data-test-id="policies-toggle-bmcShell"
-                switch
-                @change="changeSshProtocolState"
-              >
-                <span class="sr-only">
-                  {{ $t('pagePolicies.ssh') }}
-                </span>
-                <span v-if="sshProtocolState">
-                  {{ $t('global.status.enabled') }}
-                </span>
-                <span v-else>{{ $t('global.status.disabled') }}</span>
-              </b-form-checkbox>
-            </b-col>
-          </b-row>
-          <b-row class="setting-section">
-            <b-col class="d-flex align-items-center justify-content-between">
-              <dl class="mt-3 mr-3 w-75">
-                <dt>{{ $t('pagePolicies.ipmi') }}</dt>
-                <dd>
-                  {{ $t('pagePolicies.ipmiDescription') }}
-                </dd>
-              </dl>
-              <b-form-checkbox
-                id="ipmiSwitch"
-                v-model="ipmiProtocolState"
-                data-test-id="polices-toggle-networkIpmi"
-                switch
-                @change="changeIpmiProtocolState"
-              >
-                <span class="sr-only">
-                  {{ $t('pagePolicies.ipmi') }}
-                </span>
-                <span v-if="ipmiProtocolState">
-                  {{ $t('global.status.enabled') }}
-                </span>
-                <span v-else>{{ $t('global.status.disabled') }}</span>
-              </b-form-checkbox>
-            </b-col>
-          </b-row>
-        </page-section>
+        <b-row v-if="!modifySSHPolicyDisabled" class="setting-section">
+          <b-col class="d-flex align-items-center justify-content-between">
+            <dl class="mr-3 w-75">
+              <dt>{{ $t('pagePolicies.ssh') }}</dt>
+              <dd>
+                {{ $t('pagePolicies.sshDescription') }}
+              </dd>
+            </dl>
+            <b-form-checkbox
+              id="sshSwitch"
+              v-model="sshProtocolState"
+              data-test-id="policies-toggle-bmcShell"
+              switch
+              @change="changeSshProtocolState"
+            >
+              <span class="sr-only">
+                {{ $t('pagePolicies.ssh') }}
+              </span>
+              <span v-if="sshProtocolState">
+                {{ $t('global.status.enabled') }}
+              </span>
+              <span v-else>{{ $t('global.status.disabled') }}</span>
+            </b-form-checkbox>
+          </b-col>
+        </b-row>
+        <b-row class="setting-section">
+          <b-col class="d-flex align-items-center justify-content-between">
+            <dl class="mt-3 mr-3 w-75">
+              <dt>{{ $t('pagePolicies.ipmi') }}</dt>
+              <dd>
+                {{ $t('pagePolicies.ipmiDescription') }}
+              </dd>
+            </dl>
+            <b-form-checkbox
+              id="ipmiSwitch"
+              v-model="ipmiProtocolState"
+              data-test-id="polices-toggle-networkIpmi"
+              switch
+              @change="changeIpmiProtocolState"
+            >
+              <span class="sr-only">
+                {{ $t('pagePolicies.ipmi') }}
+              </span>
+              <span v-if="ipmiProtocolState">
+                {{ $t('global.status.enabled') }}
+              </span>
+              <span v-else>{{ $t('global.status.disabled') }}</span>
+            </b-form-checkbox>
+          </b-col>
+        </b-row>
+        <b-row class="setting-section">
+          <b-col class="d-flex align-items-center justify-content-between">
+            <dl class="mt-3 mr-3 w-75">
+              <dt>{{ $t('pagePolicies.vtpm') }}</dt>
+              <dd>
+                {{ $t('pagePolicies.vtpmDescription') }}
+              </dd>
+            </dl>
+            <b-form-checkbox
+              id="vtpmSwitch"
+              v-model="vtpmState"
+              data-test-id="policies-toggle-vtpm"
+              switch
+              @change="changeVtpmState"
+            >
+              <span class="sr-only">
+                {{ $t('pagePolicies.vtpm') }}
+              </span>
+              <span v-if="vtpmState">
+                {{ $t('global.status.enabled') }}
+              </span>
+              <span v-else>{{ $t('global.status.disabled') }}</span>
+            </b-form-checkbox>
+          </b-col>
+        </b-row>
+        <b-row class="setting-section">
+          <b-col class="d-flex align-items-center justify-content-between">
+            <dl class="mt-3 mr-3 w-75">
+              <dt>{{ $t('pagePolicies.rtad') }}</dt>
+              <dd>
+                {{ $t('pagePolicies.rtadDescription') }}
+              </dd>
+            </dl>
+            <b-form-checkbox
+              id="rtadSwitch"
+              v-model="rtadState"
+              data-test-id="policies-toggle-rtad"
+              switch
+              @change="changeRtadState"
+            >
+              <span class="sr-only">
+                {{ $t('pagePolicies.rtad') }}
+              </span>
+              <span v-if="rtadState">
+                {{ $t('global.status.enabled') }}
+              </span>
+              <span v-else>{{ $t('global.status.disabled') }}</span>
+            </b-form-checkbox>
+          </b-col>
+        </b-row>
       </b-col>
     </b-row>
   </b-container>
 </template>
 
 <script>
-import PageSection from '@/components/Global/PageSection';
 import PageTitle from '@/components/Global/PageTitle';
 
 import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
@@ -69,7 +116,7 @@
 
 export default {
   name: 'Policies',
-  components: { PageTitle, PageSection },
+  components: { PageTitle },
   mixins: [LoadingBarMixin, BVToastMixin],
   beforeRouteLeave(to, from, next) {
     this.hideLoader();
@@ -98,12 +145,37 @@
         return newValue;
       },
     },
+    rtadState: {
+      get() {
+        if (this.$store.getters['policies/rtadEnabled'] === 'Enabled') {
+          return true;
+        } else {
+          return false;
+        }
+      },
+      set(newValue) {
+        return newValue;
+      },
+    },
+    vtpmState: {
+      get() {
+        if (this.$store.getters['policies/vtpmEnabled'] === 'Enabled') {
+          return true;
+        } else {
+          return false;
+        }
+      },
+      set(newValue) {
+        return newValue;
+      },
+    },
   },
   created() {
     this.startLoader();
-    this.$store
-      .dispatch('policies/getNetworkProtocolStatus')
-      .finally(() => this.endLoader());
+    Promise.all([
+      this.$store.dispatch('policies/getBiosStatus'),
+      this.$store.dispatch('policies/getNetworkProtocolStatus'),
+    ]).finally(() => this.endLoader());
   },
   methods: {
     changeIpmiProtocolState(state) {
@@ -118,6 +190,18 @@
         .then((message) => this.successToast(message))
         .catch(({ message }) => this.errorToast(message));
     },
+    changeRtadState(state) {
+      this.$store
+        .dispatch('policies/saveRtadState', state ? 'Enabled' : 'Disabled')
+        .then((message) => this.successToast(message))
+        .catch(({ message }) => this.errorToast(message));
+    },
+    changeVtpmState(state) {
+      this.$store
+        .dispatch('policies/saveVtpmState', state ? 'Enabled' : 'Disabled')
+        .then((message) => this.successToast(message))
+        .catch(({ message }) => this.errorToast(message));
+    },
   },
 };
 </script>