Files
speckle-server/packages/frontend/src/main/components/admin/UsersListUserItem.vue
T
Kristaps Fabians Geikins 069f64afc9 feat(fe1 & fe2): guest role (#1768)
* feat: user guest role switching in FE1

* removed stream create buttons

* fe1 done

* fe1 - specifying role in invite dialogs

* fe1 - bulk invites

* WIP FE2 changes

* fe1: allow role select condition fixes

* xtra limitations on createForOnboarding

* more invite creation validations

* no longer able to set guest as project owner in invite

* preparations for server role select in invite dialog

* team management dialog done

* server invite dialog updated

* hiding invite dialog

* fixed mocks
2023-08-24 09:30:09 +02:00

84 lines
2.2 KiB
Vue

<template>
<v-row class="align-center px-3">
<v-col cols="3" class="text-truncate">
<user-avatar :id="selfUser.id" :size="30" class="mr-2"></user-avatar>
<router-link
class="text-decoration-none space-grotesk mx-1"
:to="`/profile/${selfUser.id}`"
>
{{ selfUser.name }}
</router-link>
</v-col>
<v-col cols="3" class="caption text-truncate">
<v-icon
v-if="selfUser.verified"
v-tooltip="'Verfied email'"
small
class="mr-2 primary--text"
>
mdi-shield-check
</v-icon>
<v-icon v-else v-tooltip="'Email not verified'" small class="mr-2 warning--text">
mdi-shield-alert
</v-icon>
{{ selfUser.email }}
</v-col>
<v-col
v-tooltip="selfUser.company ? selfUser.company : 'No company info.'"
cols="3"
class="caption text-truncate"
>
<v-icon x-small>mdi-domain</v-icon>
{{ selfUser.company ? selfUser.company : 'No company info.' }}
</v-col>
<v-col cols="3" class="d-flex align-center text-right">
<v-icon small class="mr-2">
{{
selfUser.role === serverRoles.Admin
? 'mdi-key'
: selfUser.role === serverRoles.ArchivedUser
? 'mdi-account-off'
: 'mdi-account'
}}
</v-icon>
<user-role-select
:allow-guest="allowGuest"
:role="selfUser.role"
@update:role="(e) => $emit('change-role', { user, role: e })"
/>
<v-btn
v-tooltip="'Delete user'"
small
icon
color="error"
@click="$emit('delete', selfUser)"
>
<v-icon small>mdi-delete-outline</v-icon>
</v-btn>
</v-col>
</v-row>
</template>
<script>
import UserRoleSelect from '@/main/components/common/UserRoleSelect.vue'
import { Roles } from '@speckle/shared'
export default {
name: 'UsersListUserItem',
components: {
UserAvatar: () => import('@/main/components/common/UserAvatar'),
UserRoleSelect
},
props: {
user: { type: Object, default: () => null },
allowGuest: { type: Boolean }
},
data() {
return {
selfUser: this.user,
serverRoles: Roles.Server
}
}
}
</script>