summaryrefslogtreecommitdiff
path: root/src/views/AccessControl/Ldap/TableRoleGroups.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/AccessControl/Ldap/TableRoleGroups.vue')
-rw-r--r--src/views/AccessControl/Ldap/TableRoleGroups.vue265
1 files changed, 0 insertions, 265 deletions
diff --git a/src/views/AccessControl/Ldap/TableRoleGroups.vue b/src/views/AccessControl/Ldap/TableRoleGroups.vue
deleted file mode 100644
index 9d05ceaf..00000000
--- a/src/views/AccessControl/Ldap/TableRoleGroups.vue
+++ /dev/null
@@ -1,265 +0,0 @@
-<template>
- <div>
- <b-row>
- <b-col md="9">
- <alert :show="isServiceEnabled === false" variant="info">
- {{ $t('pageLdap.tableRoleGroups.alertContent') }}
- </alert>
- </b-col>
- </b-row>
- <b-row>
- <b-col class="text-right" md="9">
- <b-btn
- variant="primary"
- :disabled="!isServiceEnabled"
- @click="initRoleGroupModal(null)"
- >
- <icon-add />
- {{ $t('pageLdap.addRoleGroup') }}
- </b-btn>
- </b-col>
- </b-row>
- <b-row>
- <b-col md="9">
- <table-toolbar
- ref="toolbar"
- :selected-items-count="selectedRows.length"
- :actions="batchActions"
- @clear-selected="clearSelectedRows($refs.table)"
- @batch-action="onBatchAction"
- />
- <b-table
- ref="table"
- responsive
- selectable
- show-empty
- no-select-on-click
- hover
- no-sort-reset
- sort-icon-left
- :items="tableItems"
- :fields="fields"
- :empty-text="$t('global.table.emptyMessage')"
- @row-selected="onRowSelected($event, tableItems.length)"
- >
- <!-- Checkbox column -->
- <template #head(checkbox)>
- <b-form-checkbox
- v-model="tableHeaderCheckboxModel"
- :indeterminate="tableHeaderCheckboxIndeterminate"
- :disabled="!isServiceEnabled"
- @change="onChangeHeaderCheckbox($refs.table)"
- >
- <span class="sr-only">{{ $t('global.table.selectAll') }}</span>
- </b-form-checkbox>
- </template>
- <template #cell(checkbox)="row">
- <b-form-checkbox
- v-model="row.rowSelected"
- :disabled="!isServiceEnabled"
- @change="toggleSelectRow($refs.table, row.index)"
- >
- <span class="sr-only">{{ $t('global.table.selectItem') }}</span>
- </b-form-checkbox>
- </template>
-
- <!-- table actions column -->
- <template #cell(actions)="{ item }">
- <table-row-action
- v-for="(action, index) in item.actions"
- :key="index"
- :value="action.value"
- :enabled="action.enabled"
- :title="action.title"
- @click-table-action="onTableRowAction($event, item)"
- >
- <template #icon>
- <icon-edit v-if="action.value === 'edit'" />
- <icon-trashcan v-if="action.value === 'delete'" />
- </template>
- </table-row-action>
- </template>
- </b-table>
- </b-col>
- </b-row>
- <modal-add-role-group
- :role-group="activeRoleGroup"
- @ok="saveRoleGroup"
- @hidden="activeRoleGroup = null"
- />
- </div>
-</template>
-
-<script>
-import IconEdit from '@carbon/icons-vue/es/edit/20';
-import IconTrashcan from '@carbon/icons-vue/es/trash-can/20';
-import IconAdd from '@carbon/icons-vue/es/add--alt/20';
-import { mapGetters } from 'vuex';
-
-import Alert from '@/components/Global/Alert';
-import TableToolbar from '@/components/Global/TableToolbar';
-import TableRowAction from '@/components/Global/TableRowAction';
-import BVTableSelectableMixin, {
- selectedRows,
- tableHeaderCheckboxModel,
- tableHeaderCheckboxIndeterminate,
-} from '@/components/Mixins/BVTableSelectableMixin';
-import BVToastMixin from '@/components/Mixins/BVToastMixin';
-import ModalAddRoleGroup from './ModalAddRoleGroup';
-import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
-
-export default {
- components: {
- Alert,
- IconAdd,
- IconEdit,
- IconTrashcan,
- ModalAddRoleGroup,
- TableRowAction,
- TableToolbar,
- },
- mixins: [BVTableSelectableMixin, BVToastMixin, LoadingBarMixin],
- data() {
- return {
- activeRoleGroup: null,
- fields: [
- {
- key: 'checkbox',
- sortable: false,
- },
- {
- key: 'groupName',
- sortable: true,
- label: this.$t('pageLdap.tableRoleGroups.groupName'),
- },
- {
- key: 'groupPrivilege',
- sortable: true,
- label: this.$t('pageLdap.tableRoleGroups.groupPrivilege'),
- },
- {
- key: 'actions',
- sortable: false,
- label: '',
- tdClass: 'text-right',
- },
- ],
- batchActions: [
- {
- value: 'delete',
- label: this.$t('global.action.delete'),
- },
- ],
- selectedRows: selectedRows,
- tableHeaderCheckboxModel: tableHeaderCheckboxModel,
- tableHeaderCheckboxIndeterminate: tableHeaderCheckboxIndeterminate,
- };
- },
- computed: {
- ...mapGetters('ldap', ['isServiceEnabled', 'enabledRoleGroups']),
- tableItems() {
- return this.enabledRoleGroups.map(({ LocalRole, RemoteGroup }) => {
- return {
- groupName: RemoteGroup,
- groupPrivilege: LocalRole,
- actions: [
- {
- value: 'edit',
- title: this.$t('global.action.edit'),
- enabled: this.isServiceEnabled,
- },
- {
- value: 'delete',
- title: this.$t('global.action.delete'),
- enabled: this.isServiceEnabled,
- },
- ],
- };
- });
- },
- },
- created() {
- this.$store.dispatch('localUsers/getAccountRoles');
- },
- methods: {
- onBatchAction() {
- this.$bvModal
- .msgBoxConfirm(
- this.$tc(
- 'pageLdap.modal.deleteRoleGroupBatchConfirmMessage',
- this.selectedRows.length
- ),
- {
- title: this.$t('pageLdap.modal.deleteRoleGroup'),
- okTitle: this.$t('global.action.delete'),
- cancelTitle: this.$t('global.action.cancel'),
- }
- )
- .then((deleteConfirmed) => {
- if (deleteConfirmed) {
- this.startLoader();
- this.$store
- .dispatch('ldap/deleteRoleGroup', {
- roleGroups: this.selectedRows,
- })
- .then((success) => this.successToast(success))
- .catch(({ message }) => this.errorToast(message))
- .finally(() => this.endLoader());
- }
- });
- },
- onTableRowAction(action, row) {
- switch (action) {
- case 'edit':
- this.initRoleGroupModal(row);
- break;
- case 'delete':
- this.$bvModal
- .msgBoxConfirm(
- this.$t('pageLdap.modal.deleteRoleGroupConfirmMessage', {
- groupName: row.groupName,
- }),
- {
- title: this.$t('pageLdap.modal.deleteRoleGroup'),
- okTitle: this.$t('global.action.delete'),
- cancelTitle: this.$t('global.action.cancel'),
- }
- )
- .then((deleteConfirmed) => {
- if (deleteConfirmed) {
- this.startLoader();
- this.$store
- .dispatch('ldap/deleteRoleGroup', { roleGroups: [row] })
- .then((success) => this.successToast(success))
- .catch(({ message }) => this.errorToast(message))
- .finally(() => this.endLoader());
- }
- });
- break;
- }
- },
- initRoleGroupModal(roleGroup) {
- this.activeRoleGroup = roleGroup;
- this.$bvModal.show('modal-role-group');
- },
- saveRoleGroup({ addNew, groupName, groupPrivilege }) {
- this.activeRoleGroup = null;
- const data = { groupName, groupPrivilege };
- this.startLoader();
- if (addNew) {
- this.$store
- .dispatch('ldap/addNewRoleGroup', data)
- .then((success) => this.successToast(success))
- .catch(({ message }) => this.errorToast(message))
- .finally(() => this.endLoader());
- } else {
- this.$store
- .dispatch('ldap/saveRoleGroup', data)
- .then((success) => this.successToast(success))
- .catch(({ message }) => this.errorToast(message))
- .finally(() => this.endLoader());
- }
- },
- },
-};
-</script>