Merge pull request #77 from sadnub/fix-user

fix user being able to delete/disable itself
This commit is contained in:
wh1te909
2020-08-26 13:31:44 -07:00
committed by GitHub
2 changed files with 22 additions and 3 deletions

View File

@@ -36,7 +36,7 @@
<q-btn
ref="delete"
label="Delete"
:disable="selected.length === 0"
:disable="selected.length === 0 || selected[0].username === logged_in_user"
dense
flat
push
@@ -106,6 +106,7 @@
v-close-popup
@click="deleteUser(props.row)"
id="context-delete"
v-if="props.row.username !== logged_in_user"
>
<q-item-section side>
<q-icon name="delete" />
@@ -143,7 +144,12 @@
</q-menu>
<!-- enabled checkbox -->
<q-td>
<q-checkbox dense @input="toggleEnabled(props.row)" v-model="props.row.is_active" />
<q-checkbox
dense
@input="toggleEnabled(props.row)"
v-model="props.row.is_active"
:disable="props.row.username === logged_in_user"
/>
</q-td>
<q-td>{{ props.row.username }}</q-td>
<q-td>{{ props.row.first_name }} {{ props.row.last_name }}</q-td>
@@ -261,6 +267,9 @@ export default {
this.showUserFormModal = true;
},
toggleEnabled(user) {
if (user.username === this.logged_in_user) {
return;
}
let text = user.is_active ? "User enabled successfully" : "User disabled successfully";
const data = {
@@ -313,6 +322,7 @@ export default {
computed: {
...mapState({
users: state => state.admin.users,
logged_in_user: state => state.username,
}),
},
mounted() {

View File

@@ -66,7 +66,7 @@
<q-card-section class="row">
<div class="col-2">Active:</div>
<div class="col-10">
<q-toggle v-model="is_active" color="green" />
<q-toggle v-model="is_active" color="green" :disable="username === logged_in_user" />
</div>
</q-card-section>
<q-card-section class="row items-center">
@@ -77,6 +77,7 @@
</template>
<script>
import { mapState } from "vuex";
import mixins, { notifySuccessConfig, notifyErrorConfig } from "@/mixins/mixins";
export default {
@@ -98,6 +99,9 @@ export default {
title() {
return this.pk ? "Edit User" : "Add User";
},
...mapState({
logged_in_user: state => state.username,
}),
},
methods: {
getUser() {
@@ -125,6 +129,11 @@ export default {
};
if (this.pk) {
// dont allow updating is_active if username is same as logged in user
if (formData.username === this.logged_in_user) {
delete formData.is_active;
}
this.$store
.dispatch("admin/editUser", formData)
.then(r => {