blob: cca068dcbe9bd076ec9d5c26011ce295feb991d8 [file] [log] [blame]
<template>
<b-container fluid>
<b-row>
<b-col lg="8">
<h1>Local user management</h1>
</b-col>
</b-row>
<b-row>
<b-col lg="8" md="10">
<b-button v-b-modal.modal-settings variant="secondary"
>Account policy settings</b-button
>
<b-button v-b-modal.modal-add-user variant="primary">Add user</b-button>
</b-col>
</b-row>
<b-row>
<b-col lg="8" md="10">
<b-table bordered head-variant="dark" :items="tableItems" show-empty>
<template v-slot:head(actions)="data"></template>
<template v-slot:cell(actions)="data">
<b-button
:disabled="!data.value.edit"
v-b-modal.modal-user-settings
>
<Edit20 />
</b-button>
<b-button
:disabled="!data.value.delete"
v-b-modal.modal-user-delete
>
<TrashCan20 />
</b-button>
</template>
</b-table>
</b-col>
</b-row>
<b-row>
<b-col lg="6" md="8">
<b-button v-b-toggle.collapse-role-table variant="info" class="mt-3"
>View privilege role descriptions</b-button
>
<b-collapse id="collapse-role-table" class="mt-3">
<role-table />
</b-collapse>
</b-col>
</b-row>
<!-- Modals -->
<b-modal id="modal-add-user" title="Add user" ref="modal">
<template v-slot:modal-footer="{ ok, cancel, hide }">
<b-button
size="sm"
variant="secondary"
@click="$bvModal.hide('modal-add-user')"
>Cancel</b-button
>
<b-button
size="sm"
variant="primary"
@click="$bvModal.hide('modal-add-user')"
>Add user</b-button
>
</template>
</b-modal>
<b-modal id="modal-settings" title="Account policy settings"></b-modal>
<b-modal id="modal-user-delete" title="Delete user"></b-modal>
<b-modal id="modal-user-settings" title="User settings"></b-modal>
</b-container>
</template>
<script>
import LocalUserManagementRoleTable from "./LocalUserMangementRoleTable";
import TrashCan20 from "@carbon/icons-vue/es/trash-can/20";
import Edit20 from "@carbon/icons-vue/es/edit/20";
export default {
name: "local-users",
components: {
TrashCan20,
Edit20,
roleTable: LocalUserManagementRoleTable
},
created() {
this.getUsers();
},
computed: {
allUsers() {
return this.$store.getters["localUsers/allUsers"];
},
tableItems() {
// transform user data to table data
return this.allUsers.map(user => {
return {
username: user.UserName,
privilege: user.RoleId,
status: user.Locked
? "Locked"
: user.Enabled
? "Enabled"
: "Disabled",
actions: {
edit: true,
delete: user.UserName === "root" ? false : true
}
};
});
}
},
methods: {
getUsers() {
this.$store.dispatch("localUsers/getUsers");
}
}
};
</script>
<style lang="scss" scoped>
h1 {
margin-bottom: 2rem;
}
</style>