mirror of
https://github.com/jpros/tacticalrmm-web.git
synced 2026-05-03 13:04:38 +00:00
Merge pull request #77 from sadnub/fix-user
fix user being able to delete/disable itself
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user