mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 18:53:17 -05:00 
			
		
		
		
	@@ -1,22 +1,19 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <v-container fluid>
 | 
					  <v-container fluid>
 | 
				
			||||||
    <BaseDialog v-model="deleteDialog" :title="$t('general.confirm')" color="error" @confirm="deleteUser(deleteTarget)">
 | 
					    <BaseDialog
 | 
				
			||||||
 | 
					      v-model="deleteDialog"
 | 
				
			||||||
 | 
					      :title="$tc('general.confirm')"
 | 
				
			||||||
 | 
					      color="error"
 | 
				
			||||||
 | 
					      @confirm="deleteUser(deleteTargetId)"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
      <template #activator> </template>
 | 
					      <template #activator> </template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <v-card-text
 | 
					      <v-card-text>
 | 
				
			||||||
        v-if="isUserOwnAccount === true">
 | 
					        <v-alert v-if="isUserOwnAccount" type="warning" text outlined>
 | 
				
			||||||
        <v-alert
 | 
					          {{ $t("general.confirm-delete-own-admin-account") }}
 | 
				
			||||||
        text
 | 
					 | 
				
			||||||
        outlined
 | 
					 | 
				
			||||||
        color="deep-orange"
 | 
					 | 
				
			||||||
        >⚠️ {{ $t("general.confirm-delete-own-admin-account") }}
 | 
					 | 
				
			||||||
        <br/>
 | 
					 | 
				
			||||||
        </v-alert>
 | 
					        </v-alert>
 | 
				
			||||||
        {{ $t("general.confirm-delete-generic") }}
 | 
					        {{ $t("general.confirm-delete-generic") }}
 | 
				
			||||||
      </v-card-text>
 | 
					      </v-card-text>
 | 
				
			||||||
      <v-card-text v-else>
 | 
					 | 
				
			||||||
          {{ $t("general.confirm-delete-generic") }}
 | 
					 | 
				
			||||||
      </v-card-text>
 | 
					 | 
				
			||||||
    </BaseDialog>
 | 
					    </BaseDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <BaseCardSectionTitle title="User Management"> </BaseCardSectionTitle>
 | 
					    <BaseCardSectionTitle title="User Management"> </BaseCardSectionTitle>
 | 
				
			||||||
@@ -62,9 +59,8 @@
 | 
				
			|||||||
            color="error"
 | 
					            color="error"
 | 
				
			||||||
            @click.stop="
 | 
					            @click.stop="
 | 
				
			||||||
              deleteDialog = true;
 | 
					              deleteDialog = true;
 | 
				
			||||||
              deleteTarget = item.id;
 | 
					              deleteTargetId = item.id;
 | 
				
			||||||
              isUserOwnAccount = item.id === user.id ? true : false;
 | 
					            "
 | 
				
			||||||
              "
 | 
					 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
            <v-icon>
 | 
					            <v-icon>
 | 
				
			||||||
              {{ $globals.icons.delete }}
 | 
					              {{ $globals.icons.delete }}
 | 
				
			||||||
@@ -91,21 +87,32 @@ export default defineComponent({
 | 
				
			|||||||
    const refUserDialog = ref();
 | 
					    const refUserDialog = ref();
 | 
				
			||||||
    const { $auth } = useContext();
 | 
					    const { $auth } = useContext();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const user = computed(() => $auth.user);
 | 
					    const user = computed(() => $auth.user as UserOut | null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const { i18n } = useContext();
 | 
					    const { i18n } = useContext();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const router = useRouter();
 | 
					    const router = useRouter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const isUserOwnAccount = computed(() => {
 | 
				
			||||||
 | 
					      return state.deleteTargetId === user.value?.id;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const state = reactive({
 | 
					    const state = reactive({
 | 
				
			||||||
      deleteDialog: false,
 | 
					      deleteDialog: false,
 | 
				
			||||||
      deleteTarget: 0,
 | 
					      deleteTargetId: "",
 | 
				
			||||||
      isUserOwnAccount: false,
 | 
					 | 
				
			||||||
      search: "",
 | 
					      search: "",
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const { users, refreshAllUsers } = useAllUsers();
 | 
					    const { users, refreshAllUsers } = useAllUsers();
 | 
				
			||||||
    const { loading, deleteUser } = useUser(refreshAllUsers);
 | 
					    const { loading, deleteUser: deleteUserMixin } = useUser(refreshAllUsers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function deleteUser(id: string) {
 | 
				
			||||||
 | 
					      deleteUserMixin(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (isUserOwnAccount.value) {
 | 
				
			||||||
 | 
					        $auth.logout();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function handleRowClick(item: UserOut) {
 | 
					    function handleRowClick(item: UserOut) {
 | 
				
			||||||
      router.push(`/admin/manage/users/${item.id}`);
 | 
					      router.push(`/admin/manage/users/${item.id}`);
 | 
				
			||||||
@@ -140,6 +147,7 @@ export default defineComponent({
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 | 
					      isUserOwnAccount,
 | 
				
			||||||
      unlockAllUsers,
 | 
					      unlockAllUsers,
 | 
				
			||||||
      ...toRefs(state),
 | 
					      ...toRefs(state),
 | 
				
			||||||
      headers,
 | 
					      headers,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user