mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
176 lines
3.9 KiB
Vue
176 lines
3.9 KiB
Vue
<template>
|
|
<ViewBase :queries="queries" skeleton="CardInfoSkeleton">
|
|
<YCard v-if="user" :title="user.fullname" icon="user">
|
|
<div class="d-flex align-items-center flex-column flex-md-row">
|
|
<YIcon iname="user" class="fa-fw" />
|
|
|
|
<div class="w-100">
|
|
<BRow>
|
|
<BCol>
|
|
<strong>{{ $t('user_username') }}</strong>
|
|
</BCol>
|
|
<BCol>{{ user.username }}</BCol>
|
|
</BRow>
|
|
|
|
<BRow>
|
|
<BCol>
|
|
<strong>{{ $t('user_email') }}</strong>
|
|
</BCol>
|
|
<BCol class="font-italic">
|
|
{{ user.mail }}
|
|
</BCol>
|
|
</BRow>
|
|
|
|
<BRow>
|
|
<BCol>
|
|
<strong>{{ $t('user_mailbox_quota') }}</strong>
|
|
</BCol>
|
|
<BCol>{{ user['mailbox-quota'].limit }}</BCol>
|
|
</BRow>
|
|
|
|
<BRow>
|
|
<BCol>
|
|
<strong>{{ $t('user_mailbox_use') }}</strong>
|
|
</BCol>
|
|
<BCol>{{ user['mailbox-quota'].use }}</BCol>
|
|
</BRow>
|
|
|
|
<BRow
|
|
v-for="(trad, mailType) in {
|
|
'mail-aliases': 'user_emailaliases',
|
|
'mail-forward': 'user_emailforward',
|
|
}"
|
|
:key="mailType"
|
|
>
|
|
<BCol>
|
|
<strong>{{ $t(trad) }}</strong>
|
|
</BCol>
|
|
|
|
<BCol v-if="user[mailType]">
|
|
<ul v-if="user[mailType].length > 1">
|
|
<li v-for="(alias, index) in user[mailType]" :key="index">
|
|
{{ alias }}
|
|
</li>
|
|
</ul>
|
|
|
|
<template v-else-if="user[mailType][0]">
|
|
{{ user[mailType][0] }}
|
|
</template>
|
|
</BCol>
|
|
</BRow>
|
|
</div>
|
|
</div>
|
|
|
|
<template #buttons>
|
|
<BButton
|
|
:to="{ name: 'user-edit', params: { user } }"
|
|
:variant="user ? 'info' : 'dark'"
|
|
>
|
|
<YIcon iname="edit" />
|
|
{{ user ? $t('user_username_edit', { name: user.username }) : '' }}
|
|
</BButton>
|
|
|
|
<BButton v-b-modal.delete-modal :variant="user ? 'danger' : 'dark'">
|
|
<YIcon iname="trash-o" />
|
|
{{ user ? $t('delete') : '' }}
|
|
</BButton>
|
|
</template>
|
|
</YCard>
|
|
|
|
<BModal
|
|
v-if="user"
|
|
id="delete-modal"
|
|
:title="$t('confirm_delete', { name: user.username })"
|
|
@ok="deleteUser"
|
|
header-bg-variant="warning"
|
|
body-class=""
|
|
body-bg-variant=""
|
|
>
|
|
<BFormGroup>
|
|
<BFormCheckbox v-model="purge">
|
|
{{ $t('purge_user_data_checkbox', { name: user.username }) }}
|
|
</BFormCheckbox>
|
|
|
|
<template #description>
|
|
<div class="alert alert-warning">
|
|
<YIcon iname="exclamation-triangle" />
|
|
{{ $t('purge_user_data_warning') }}
|
|
</div>
|
|
</template>
|
|
</BFormGroup>
|
|
</BModal>
|
|
</ViewBase>
|
|
</template>
|
|
|
|
<script>
|
|
import api from '@/api'
|
|
|
|
export default {
|
|
compatConfig: { MODE: 3 },
|
|
name: 'UserInfo',
|
|
|
|
props: {
|
|
name: { type: String, required: true },
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
queries: [
|
|
['GET', { uri: 'users', param: this.name, storeKey: 'users_details' }],
|
|
],
|
|
purge: false,
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
user() {
|
|
return this.$store.getters.user(this.name)
|
|
},
|
|
},
|
|
|
|
methods: {
|
|
deleteUser() {
|
|
const data = this.purge ? { purge: '' } : {}
|
|
api
|
|
.delete(
|
|
{ uri: 'users', param: this.name, storeKey: 'users_details' },
|
|
data,
|
|
{ key: 'users.delete', name: this.name },
|
|
)
|
|
.then(() => {
|
|
this.$router.push({ name: 'user-list' })
|
|
})
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.icon.fa-user {
|
|
font-size: 10rem;
|
|
padding-right: 3rem;
|
|
padding-left: 1.75rem;
|
|
}
|
|
|
|
.row {
|
|
+ .row {
|
|
border-top: $thin-border;
|
|
}
|
|
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.col {
|
|
margin: 0;
|
|
}
|
|
|
|
ul {
|
|
margin: 0;
|
|
padding: 0;
|
|
|
|
li {
|
|
font-style: italic;
|
|
list-style: none;
|
|
}
|
|
}
|
|
</style>
|